WordPress関数一覧|まず覚えたい基本と全体像

WordPressのオリジナルテーマ制作では、投稿タイトルを表示したり、画像を読み込んだり、ページの種類によって表示内容を切り替えたりするために、さまざまなWordPress関数を使用します。

関数の数は非常に多いため、最初からすべてを覚える必要はありません。まずは、どのような目的の関数があるのかを知り、必要なときに適切な関数を選べるようになることが大切です。

この記事では、WordPressテーマ制作でよく使う関数を、役割ごとに整理して解説します。

学べる内容

  • WordPress関数とテンプレートタグの基本的な役割
  • テーマ制作で最初に覚えたい基本関数
  • the_から始まる関数とget_から始まる関数の違い
  • 関数を記述する主なテンプレートファイル
  • WordPressループの基本的な仕組み
  • 投稿タイトル・本文・日付・URLなどの表示と取得
  • アイキャッチ画像やテーマ内画像の扱い方
  • カテゴリー・タグ・カスタムタクソノミーに関する関数
  • ページの種類を判定する条件分岐タグ
  • ナビゲーションメニューを表示する方法
  • functions.phpで使用する主な関数
  • アクションフックやフィルターフックの基本
  • ブロックエディターを拡張するときに使用する関数

コードは一つずつ暗記するのではなく、

ページを組み立てる関数
投稿情報を表示・取得する関数
表示するページを判定する関数
テーマに機能を追加する関数

WordPress関数とは

WordPress関数とは、WordPress本体に用意されている処理を、テーマファイルやプラグインから呼び出すための仕組みです。

通常のHTMLでは、見出しや本文を直接記述します。

<h1>記事タイトル</h1>
<p>ここに記事の本文を記述します。</p>

WordPressでは、投稿ごとにタイトルや本文が変わるため、関数を使って管理画面のデータを呼び出します。

<h1><?php the_title(); ?></h1>

<div class="entry-content">
	<?php the_content(); ?>
</div>

the_title()を記述した場所には投稿タイトルが表示され、the_content()を記述した場所には投稿本文が表示されます。

このようにWordPress関数を使うことで、1つのテンプレートファイルから、複数の投稿や固定ページを動的に表示できます。

WordPress関数でできること

WordPress関数には、次のような役割があります。

  • header.phpやfooter.phpなどの共通パーツを読み込む
  • 投稿タイトル・本文・日付・URLを表示する
  • アイキャッチ画像を表示する
  • 投稿を繰り返して一覧表示する
  • トップページや個別投稿など、ページの種類を判定する
  • ナビゲーションメニューを表示する
  • CSSやJavaScriptを読み込む
  • テーマにアイキャッチ画像やメニューなどの機能を追加する

まずは、

何を表示したいのか
どのファイルを読み込みたいのか
どのページで処理を行いたいのか

を考えて、目的に合う関数を調べながら使えるようになることが大切です。

最初に覚えたい20個のWordPress関数一覧

WordPressテーマ制作を始めると、多くの関数が登場します。

最初からすべて覚えようとせず、まずは次の20個を、役割ごとに確認しておきましょう。

テンプレートを組み立てる関数

関数主な役割
get_header()header.phpを読み込む
get_footer()footer.phpを読み込む
get_sidebar()sidebar.phpを読み込む
get_template_part()分割したテンプレートファイルを読み込む
wp_head()head内にWordPressやプラグインの情報を出力する
wp_footer()body終了前にスクリプトなどを出力する

基本的なテンプレート構成

<?php get_header(); ?>

<main>
	ページの内容
</main>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

get_header()とget_footer()は、ほとんどのテンプレートファイルで使用します。

wp_head()は通常、header.phpの</head>直前に記述します。

<?php wp_head(); ?>
</head>

wp_footer()は、footer.phpの</body>直前に記述します。

<?php wp_footer(); ?>
</body>

これらがないと、WordPress本体やプラグインが追加するCSS・JavaScriptが正常に読み込まれない場合があります。

投稿を繰り返して表示する関数

関数主な役割
have_posts()表示できる投稿が残っているか確認する
the_post()次の投稿データを使用できる状態にする
the_title()投稿タイトルを表示する
the_content()投稿本文を表示する
the_excerpt()投稿の抜粋を表示する
the_permalink()投稿のURLを表示する
get_the_date()投稿日を取得する

have_posts()とthe_post()は、WordPressループの基本となる関数です。

<?php if ( have_posts() ) : ?>

	<?php while ( have_posts() ) : ?>
		<?php the_post(); ?>

		<article>
			<h2>
				<a href="<?php the_permalink(); ?>">
					<?php the_title(); ?>
				</a>
			</h2>

			<time datetime="<?php echo esc_attr( get_the_date( 'Y-m-d' ) ); ?>">
				<?php echo esc_html( get_the_date() ); ?>
			</time>

			<?php the_excerpt(); ?>
		</article>

	<?php endwhile; ?>

<?php else : ?>

	<p>投稿が見つかりませんでした。</p>

<?php endif; ?>

この一連の処理を、WordPressループと呼びます。

投稿一覧、検索結果、カテゴリー一覧、個別投稿など、WordPressの多くのテンプレートで使用されます。

画像・URL・サイト情報に関する関数

関数主な役割
has_post_thumbnail()アイキャッチ画像が設定されているか確認する
the_post_thumbnail()アイキャッチ画像を表示する
home_url()サイトのトップページURLを取得する
get_theme_file_uri()テーマ内にある画像やファイルのURLを取得する
bloginfo()サイト名や文字コードなどの情報を表示する

アイキャッチ画像は、設定されているかを確認してから表示すると安全です。

<?php if ( has_post_thumbnail() ) : ?>
	<div class="post-thumbnail">
		<?php the_post_thumbnail( 'large' ); ?>
	</div>
<?php endif; ?>

トップページへのリンクは、URLを直接書かずにhome_url()を使います。

<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
	<?php bloginfo( 'name' ); ?>
</a>

テーマ内の画像を読み込む場合は、get_theme_file_uri()が便利です。

<img
	src="<?php echo esc_url(
		get_theme_file_uri( 'assets/images/logo.svg' )
	); ?>"
	alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>"
>

get_theme_file_uri()は、子テーマに同じファイルがある場合は子テーマ側を優先して取得します。

ページ判定とメニュー表示に関する関数

関数主な役割
is_front_page()サイトのフロントページか判定する
wp_nav_menu()WordPressのナビゲーションメニューを表示する

is_front_page()は、表示中のページがフロントページかどうかを判定します。

<?php if ( is_front_page() ) : ?>
	<p>トップページだけに表示する内容です。</p>
<?php endif; ?>

ナビゲーションメニューは、wp_nav_menu()を使って表示します。

<?php
wp_nav_menu(
	array(
		'theme_location' => 'global-navigation',
		'container'      => 'nav',
		'container_class'=> 'global-navigation',
	)
);
?>

メニューを表示するためには、先にfunctions.phpでメニュー位置を登録する必要があります。

まずは役割ごとに覚えよう

最初に覚えたい関数は、次の4つのグループに分けて考えると理解しやすくなります。

ページを組み立てる

get_header()
get_footer()
get_sidebar()
get_template_part()

投稿を表示する

have_posts()
the_post()
the_title()
the_content()
the_excerpt()

画像やURLを扱う

has_post_thumbnail()
the_post_thumbnail()
home_url()
get_theme_file_uri()

表示内容を切り替える

is_front_page()
wp_nav_menu()

すべての関数を一度に暗記するのではなく、実際にテーマを作りながら、この部分にはどの関数が必要なのかを確認していくことで、少しずつ使い方が身についていきます。

the_系とget_系の違い

WordPressの関数には、名前の先頭にthe_が付くものと、get_が付くものがあります。

基本的には、次のように考えると分かりやすくなります。

種類主な役割
the_から始まる関数取得した内容をその場所に表示する
get_から始まる関数内容を値として取得し、呼び出し元へ返す

例えば、投稿タイトルを扱う場合は、次の2つがあります。

<?php the_title(); ?>

the_title()は、投稿タイトルをその場所に表示します。

<?php
$title = get_the_title();
echo esc_html( $title );
?>

get_the_title()は投稿タイトルを文字列として取得します。
取得した値は、変数へ代入したり、条件分岐で使用したり、加工してから表示したりできます。

そのまま表示するならthe_系

投稿タイトルや本文を、その場所にそのまま表示する場合は、the_系の関数が簡単です。

<article>
	<h1><?php the_title(); ?></h1>

	<div class="entry-content">
		<?php the_content(); ?>
	</div>
</article>

このコードでは、管理画面で入力した投稿タイトルと本文が直接表示されます。

WordPressループの中で投稿情報を表示するときは、the_title()やthe_content()などがよく使われます。

加工して使うならget_系

取得した値を変数へ保存したい場合や、表示する前に加工したい場合は、get_系を使用します。

<?php
$title = get_the_title();

if ( $title !== '' ) :
?>
	<h1><?php echo esc_html( $title ); ?></h1>
<?php endif; ?>

get_the_title()の戻り値を変数へ保存しているため、タイトルが空でない場合だけ表示できます。

タイトルの前に文字を追加することもできます。

<?php
$title = get_the_title();
?>

<h1>
	<?php echo esc_html( '記事タイトル:' . $title ); ?>
</h1>

このように、取得したデータを条件分岐や文字列の結合に使いたい場合は、get_系が便利です。

よく使うthe_系とget_系の組み合わせ

表示する関数取得する関数内容
the_title()get_the_title()投稿タイトル
the_excerpt()get_the_excerpt()投稿の抜粋
the_permalink()get_permalink()投稿のURL
the_post_thumbnail()get_the_post_thumbnail()アイキャッチ画像のHTML
the_ID()get_the_ID()投稿ID
the_author()get_the_author()投稿者名
the_category()get_the_category()投稿カテゴリー
bloginfo()get_bloginfo()サイト名などの情報

すべての関数に、同じ名前のthe_版とget_版があるわけではありません。

また、関数によって戻り値の形式や動作が異なるため、名前だけで判断せず、使用するときは公式リファレンスも確認しましょう。

投稿URLを表示する場合

投稿へのリンクを作成するときは、the_permalink()を使えます。

<a href="<?php the_permalink(); ?>">
	<?php the_title(); ?>
</a>

the_permalink()は、現在の投稿URLをその場所に表示します。

一方、URLを変数へ保存したい場合は、get_permalink()を使用します。

<?php
$url   = get_permalink();
$title = get_the_title();
?>

<a href="<?php echo esc_url( $url ); ?>">
	<?php echo esc_html( $title ); ?>
</a>

URLをHTML属性へ出力するときは、esc_url()を使って安全に表示します。

アイキャッチ画像を扱う場合

アイキャッチ画像をそのまま表示する場合は、the_post_thumbnail()を使います。

<?php if ( has_post_thumbnail() ) : ?>
	<?php the_post_thumbnail( 'large' ); ?>
<?php endif; ?>

画像のHTMLを文字列として取得したい場合は、get_the_post_thumbnail()を使います。

<?php
$thumbnail = get_the_post_thumbnail(
	get_the_ID(),
	'large',
	array(
		'class' => 'post-thumbnail__image',
	)
);

if ( $thumbnail !== '' ) {
	echo $thumbnail;
}
?>

get_the_post_thumbnail()は、画像URLではなくimg要素を含むHTMLを返します。

アイキャッチ画像のURLだけを取得したい場合は、次の関数を使用します。

<?php
$thumbnail_url = get_the_post_thumbnail_url(
	get_the_ID(),
	'large'
);
?>

<?php if ( $thumbnail_url ) : ?>
	<img
		src="<?php echo esc_url( $thumbnail_url ); ?>"
		alt=""
	>
<?php endif; ?>

目的に応じて、画像そのものを表示するのか、HTMLを取得するのか、URLだけを取得するのかを使い分けましょう。

サイト名を扱う場合

サイト名を直接表示する場合は、bloginfo()を使います。

<p><?php bloginfo( 'name' ); ?></p>

サイト名を値として取得する場合は、get_bloginfo()を使います。

<?php
$site_name = get_bloginfo( 'name' );
?>

<p><?php echo esc_html( $site_name ); ?></p>

HTML属性の中で使用する場合も、一度取得してから適切なエスケープ処理を行うと安全です。

<img
	src="<?php echo esc_url(
		get_theme_file_uri( 'assets/images/logo.svg' )
	); ?>"
	alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>"
>

取得した値を表示するときはエスケープする

get_系の関数で取得した値は、echoを使って表示することが多くなります。

その際は、表示する場所に合わせてエスケープ関数を使います。

使用する場所主な関数
通常の文字列esc_html()
HTML属性esc_attr()
URLesc_url()
一部のHTMLを許可する文章wp_kses_post()

通常の文章を表示する場合です。

<h1>
	<?php echo esc_html( get_the_title() ); ?>
</h1>

URLを表示する場合です。

<a href="<?php echo esc_url( get_permalink() ); ?>">
	記事を見る
</a>

classやaltなどのHTML属性へ表示する場合です。

<div class="<?php echo esc_attr( $class_name ); ?>">
	内容
</div>

値を取得できることだけでなく、どこへ出力するかに合わせて安全に表示することも大切です。

the_とget_は完全な共通ルールではない

基本的には、

the_ = 表示
get_ = 取得

と考えられますが、すべての関数が完全に同じ動作になるわけではありません。

例えば、次の関数は似た名前でも、用途や処理内容に違いがあります。

the_content()
get_the_content()

the_content()は、本文へWordPressの各種フィルターを適用したうえで表示します。

一方、get_the_content()で取得した値は、the_content()とまったく同じ状態ではない場合があります。

また、次の2つにも動作の違いがあります。

the_date()
get_the_date()

the_date()は、ループ内で同じ公開日の投稿が続いた場合、日付を一度だけ表示する用途があります。

get_the_date()は、現在の投稿の日付を値として取得します。

記事カードごとに投稿日を表示する場合は、get_the_date()を使うと扱いやすくなります。

<time datetime="<?php echo esc_attr( get_the_date( 'Y-m-d' ) ); ?>">
	<?php echo esc_html( get_the_date() ); ?>
</time>

そのため、関数名の先頭だけで判断せず、実際の戻り値や使用場所も確認しましょう。

使い分けの目安

その場に内容を表示するだけなら、the_系を使用します。

<?php the_title(); ?>

値を変数へ保存したい、条件によって表示を変えたい、加工してから表示したい場合は、get_系を使用します。

<?php
$title = get_the_title();

if ( mb_strlen( $title ) > 20 ) {
	$title = mb_substr( $title, 0, 20 ) . '…';
}
?>

<h2><?php echo esc_html( $title ); ?></h2>

最初のうちは、次のように覚えておくとよいでしょう。

そのまま表示するならthe_系
値として扱うならget_系

ただし、関数ごとに細かな動作の違いがあるため、制作中に迷ったときはWordPress公式リファレンスで確認してください。

WordPress関数を記述する主なファイル

WordPress関数は、役割に応じてテンプレートファイルやfunctions.phpへ記述します。

投稿タイトルや本文など、ページに表示する処理は主にテンプレートファイルへ記述します。テーマ全体の設定や機能追加は、主にfunctions.phpへ記述します。

ファイル主な役割使用する関数の例
header.php共通ヘッダーwp_head() body_class()
footer.php共通フッターwp_footer()
front-page.phpトップページget_header() WP_Query
single.php個別投稿the_title() the_content()
page.php固定ページthe_title() the_content()
archive.php投稿一覧have_posts() the_excerpt()
template-parts繰り返し使う部品the_post_thumbnail()など
functions.phpテーマの設定・機能追加add_theme_support() add_action()

例えば、投稿タイトルと本文を表示する関数は、single.phpやpage.phpなどで使用します。

<h1><?php the_title(); ?></h1>

<div class="entry-content">
	<?php the_content(); ?>
</div>

一方、アイキャッチ画像を有効にする設定などは、functions.phpへ記述します。

function wt_theme_setup() {
	add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'wt_theme_setup' );

テンプレートを読み込む関数

WordPressテーマでは、ヘッダーやフッター、サイドバーなどの共通部分を、別のPHPファイルに分けて管理します。

分割したテンプレートファイルを読み込むときは、次の関数を使用します。

スクロールできます
関数主な役割読み込むファイル基本の記述例主な使用場所
get_header()共通ヘッダーを読み込むheader.php<?php get_header(); ?>各テンプレートの先頭
get_footer()共通フッターを読み込むfooter.php<?php get_footer(); ?>各テンプレートの最後
get_sidebar()サイドバーを読み込むsidebar.php<?php get_sidebar(); ?>投稿・固定ページ・一覧ページ
get_template_part()分割したテンプレート部品を読み込む指定したPHPファイル<?php get_template_part( 'template-parts/post-card' ); ?>投稿カード・CTA・共通部品
get_search_form()検索フォームを表示するsearchform.php<?php get_search_form(); ?>ヘッダー・サイドバー・404ページ
comments_template()コメント欄を読み込むcomments.php<?php comments_template(); ?>個別投稿ページ

基本的なページ構成

get_header()とget_footer()は、多くのテンプレートファイルで使用します。

<?php get_header(); ?>

<main class="main">
	ページの内容
</main>

<?php get_footer(); ?>

サイドバーを表示する場合は、get_sidebar()を追加します。

<?php get_header(); ?>

<div class="layout">
	<main class="main">
		ページの内容
	</main>

	<?php get_sidebar(); ?>
</div>

<?php get_footer(); ?>

get_template_part()で共通部品を読み込む

投稿カードやCTAなど、複数のページで繰り返し使う部品は、get_template_part()で読み込みます。

例えば、次のファイルを用意します。

template-parts/post-card.php

テンプレートファイルから、次のように呼び出します。

<?php
get_template_part( 'template-parts/post-card' );
?>

ファイル名の末尾にある.phpは記述しません。

別のヘッダーやサイドバーを読み込む

引数を指定すると、通常とは異なるテンプレートファイルも読み込めます。

記述例読み込まれるファイル
get_header( 'simple' )header-simple.php
get_footer( 'landing' )footer-landing.php
get_sidebar( 'shop' )sidebar-shop.php
<?php get_header( 'simple' ); ?>

ページによってヘッダーやサイドバーの構成を変えたい場合に使用します。

最初に覚えたい4つ

テンプレートの読み込みでは、まず次の4つを覚えておきましょう。

関数覚え方
get_header()ヘッダーを読み込む
get_footer()フッターを読み込む
get_sidebar()サイドバーを読み込む
get_template_part()自分で分割した共通部品を読み込む

ページ全体の共通部分にはget_header()やget_footer()、投稿カードなどの小さな共通部品にはget_template_part()を使用します。

投稿情報を表示・取得する関数

投稿タイトル、本文、抜粋、投稿日、投稿者などを扱う関数です。

the_から始まる関数はその場に表示し、get_から始まる関数は値として取得するものが多くあります。

スクロールできます
関数種類主な役割基本の記述例主な使用場所
the_title()表示投稿タイトルを表示する<?php the_title(); ?>個別投稿・固定ページ・一覧
get_the_title()取得投稿タイトルを取得するget_the_title()タイトルを加工して表示するとき
the_content()表示投稿本文を表示する<?php the_content(); ?>個別投稿・固定ページ
get_the_content()取得投稿本文を取得するget_the_content()本文を変数として扱うとき
the_excerpt()表示投稿の抜粋を表示する<?php the_excerpt(); ?>投稿一覧・検索結果
get_the_excerpt()取得投稿の抜粋を取得するget_the_excerpt()抜粋を加工して表示するとき
the_permalink()表示投稿URLを表示する<?php the_permalink(); ?>リンクのhref
get_permalink()取得投稿URLを取得するget_permalink()URLを変数として扱うとき
get_the_date()取得投稿日を取得するget_the_date()記事一覧・個別投稿
get_the_modified_date()取得更新日を取得するget_the_modified_date()更新日の表示
the_author()表示投稿者名を表示する<?php the_author(); ?>投稿者情報
get_the_author()取得投稿者名を取得するget_the_author()投稿者名を加工するとき
get_the_ID()取得現在の投稿IDを取得するget_the_ID()条件分岐・投稿データ取得
get_post_type()取得投稿タイプを取得するget_post_type()投稿・固定ページなどの判定
post_class()表示投稿に対応するclass属性を出力する<?php post_class(); ?>article要素など

投稿一覧での使用例

<article <?php post_class( 'post-card' ); ?>>

	<h2 class="post-card__title">
		<a href="<?php the_permalink(); ?>">
			<?php the_title(); ?>
		</a>
	</h2>

	<time datetime="<?php echo esc_attr( get_the_date( 'Y-m-d' ) ); ?>">
		<?php echo esc_html( get_the_date() ); ?>
	</time>

	<?php the_excerpt(); ?>

</article>

get_the_content()で取得した本文は、the_content()で表示される内容と完全に同じ状態ではない場合があります。通常の個別投稿で本文を表示する場合は、the_content()を使用するのが基本です。

画像・メディアに関する関数

投稿のアイキャッチ画像や、メディアライブラリに登録された画像を扱う関数です。

スクロールできます
関数種類主な役割基本の記述例主な使用場所
has_post_thumbnail()判定アイキャッチ画像が設定されているか確認するhas_post_thumbnail()表示前の条件分岐
the_post_thumbnail()表示アイキャッチ画像を表示するthe_post_thumbnail( 'large' )投稿・固定ページ・一覧
get_the_post_thumbnail()取得アイキャッチ画像のHTMLを取得するget_the_post_thumbnail()HTMLを変数として扱うとき
get_the_post_thumbnail_url()取得アイキャッチ画像のURLを取得するget_the_post_thumbnail_url()背景画像・独自のimg要素
get_post_thumbnail_id()取得アイキャッチ画像の添付ファイルIDを取得するget_post_thumbnail_id()画像情報を詳しく取得するとき
wp_get_attachment_image()取得添付画像のHTMLを取得するwp_get_attachment_image( $id, 'large' )メディア画像の表示
wp_get_attachment_image_url()取得添付画像のURLを取得するwp_get_attachment_image_url( $id, 'large' )画像URLが必要なとき
wp_get_attachment_metadata()取得画像サイズなどの情報を取得するwp_get_attachment_metadata( $id )幅・高さなどの取得
get_attached_file()取得添付ファイルのサーバー上のパスを取得するget_attached_file( $id )ファイル操作
attachment_url_to_postid()取得画像URLから添付ファイルIDを取得するattachment_url_to_postid( $url )URLしか分からない画像
add_image_size()登録独自の画像サイズを追加するadd_image_size( 'card', 600, 400, true )functions.php
set_post_thumbnail_size()登録アイキャッチ画像の標準サイズを設定するset_post_thumbnail_size( 1200, 630, true )functions.php

アイキャッチ画像の基本例

<?php if ( has_post_thumbnail() ) : ?>

	<div class="post-thumbnail">
		<?php the_post_thumbnail( 'large' ); ?>
	</div>

<?php endif; ?>

画像URLだけを取得して、独自のimg要素へ使用する場合です。

<?php
$thumbnail_url = get_the_post_thumbnail_url(
	get_the_ID(),
	'large'
);
?>

<?php if ( $thumbnail_url ) : ?>
	<img
		src="<?php echo esc_url( $thumbnail_url ); ?>"
		alt=""
	>
<?php endif; ?>

アイキャッチ画像の有効化は、functions.phpで設定します。

add_theme_support( 'post-thumbnails' );

URL・テーマファイルに関する関数

トップページ、投稿、カテゴリー、テーマ内の画像などのURLを取得する関数です。

URLを出力するときは、基本的にesc_url()を使用します。

スクロールできます
関数主な役割取得するURL基本の記述例主な使用場所
home_url()サイトのトップページURLを取得するサイトの公開URLhome_url( '/' )ロゴ・トップへ戻るリンク
site_url()WordPress本体の設置URLを取得するWordPressアドレスsite_url()WordPress設置先の確認
get_permalink()投稿・固定ページのURLを取得する個別ページURLget_permalink()投稿へのリンク
get_post_type_archive_link()投稿タイプの一覧URLを取得するカスタム投稿一覧get_post_type_archive_link( 'news' )カスタム投稿へのリンク
get_category_link()カテゴリーページのURLを取得するカテゴリー一覧get_category_link( $category_id )カテゴリーリンク
get_tag_link()タグページのURLを取得するタグ一覧get_tag_link( $tag_id )タグリンク
get_term_link()タームページのURLを取得するタクソノミー一覧get_term_link( $term )カスタムタクソノミー
get_author_posts_url()投稿者別一覧のURLを取得する投稿者アーカイブget_author_posts_url( $author_id )投稿者リンク
get_search_link()検索結果ページのURLを取得する検索結果get_search_link( 'WordPress' )検索リンク
get_theme_file_uri()テーマ内ファイルのURLを取得する子テーマ優先のファイルURLget_theme_file_uri( 'assets/images/logo.svg' )画像・CSS・JavaScript
get_stylesheet_directory_uri()使用中テーマのURLを取得する子テーマのディレクトリget_stylesheet_directory_uri()子テーマのファイル
get_template_directory_uri()親テーマのURLを取得する親テーマのディレクトリget_template_directory_uri()親テーマのファイル
admin_url()管理画面内のURLを取得するWordPress管理画面admin_url()管理画面へのリンク
wp_get_attachment_url()添付ファイルのURLを取得するメディアファイルwp_get_attachment_url( $id )PDF・画像など

トップページへのリンク

<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
	<?php bloginfo( 'name' ); ?>
</a>

テーマ内の画像を表示する

<img
	src="<?php echo esc_url(
		get_theme_file_uri( 'assets/images/logo.svg' )
	); ?>"
	alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>"
>

get_theme_file_uri()は、子テーマに対象ファイルがある場合は子テーマ側を優先します。子テーマ制作では扱いやすい関数です。

home_url()とsite_url()の違い

関数取得する場所
home_url()利用者がアクセスするサイトのトップURL
site_url()WordPress本体が設置されているURL

通常のトップページへのリンクには、home_url()を使用します。

ページを判定する条件分岐タグ

WordPressでは、表示中のページに応じて内容を切り替えられます。

条件分岐タグは、条件に該当する場合はtrue、該当しない場合はfalseを返します。

スクロールできます
関数判定するページ・状態基本の記述例引数の例主な用途
is_front_page()サイトのフロントページis_front_page()なしトップページ専用表示
is_home()投稿一覧ページis_home()なしブログ一覧専用表示
is_single()個別投稿ページis_single()is_single( 123 )特定の投稿を判定
is_page()固定ページis_page()is_page( 'contact' )特定の固定ページを判定
is_singular()個別表示ページ全般is_singular()is_singular( 'news' )投稿タイプをまとめて判定
is_archive()アーカイブページ全般is_archive()なし一覧ページ共通の処理
is_category()カテゴリー一覧is_category()is_category( 'news' )特定カテゴリーの判定
is_tag()タグ一覧is_tag()is_tag( 'html' )特定タグの判定
is_tax()カスタムタクソノミーis_tax()is_tax( 'genre', 'web' )独自分類の判定
is_post_type_archive()カスタム投稿タイプ一覧is_post_type_archive()is_post_type_archive( 'news' )カスタム投稿一覧
is_search()検索結果ページis_search()なし検索結果専用表示
is_404()404ページis_404()なしページ未発見時の処理
is_author()投稿者別一覧is_author()is_author( 5 )投稿者アーカイブ
is_date()日付別一覧is_date()なし日付アーカイブ
is_paged()2ページ目以降is_paged()なしページ送り後の表示変更
is_user_logged_in()ユーザーがログイン中かis_user_logged_in()なし会員向け表示
has_nav_menu()メニュー位置にメニューがあるかhas_nav_menu( 'global' )メニュー位置メニュー表示前の確認
is_active_sidebar()ウィジェットが登録されているかis_active_sidebar( 'sidebar-1' )サイドバーID空のサイドバーを非表示

トップページだけに表示する

<?php if ( is_front_page() ) : ?>

	<section class="main-visual">
		<h1>トップページだけに表示します</h1>
	</section>

<?php endif; ?>

特定の固定ページを判定する

<?php if ( is_page( 'contact' ) ) : ?>

	<p>お問い合わせページ専用の案内です。</p>

<?php endif; ?>

複数の条件を組み合わせる

<?php if ( is_single() || is_page() ) : ?>

	<p>個別投稿または固定ページに表示します。</p>

<?php endif; ?>

否定する場合は、先頭に!を付けます。

<?php if ( ! is_front_page() ) : ?>

	<p>トップページ以外に表示します。</p>

<?php endif; ?>

is_front_page()とis_home()の違い

関数判定対象
is_front_page()サイトの最初に表示されるフロントページ
is_home()ブログ投稿の一覧ページ

管理画面の「設定 → 表示設定」で、ホームページと投稿ページを別々に設定している場合、この2つは異なるページを判定します。

1.WordPressループで使う関数

関数・クラス主な役割
have_posts()表示できる投稿が残っているか確認
the_post()次の投稿データを使用できる状態にする
WP_Query条件を指定して投稿を取得
wp_reset_postdata()独自ループ後に投稿データを元へ戻す
the_posts_pagination()投稿一覧のページ送りを表示

2.カテゴリー・タグ・タクソノミーの関数

関数主な役割
the_category()投稿のカテゴリーを表示
get_the_category()投稿のカテゴリーを取得
the_tags()投稿のタグを表示
get_the_tags()投稿のタグを取得
get_terms()タームの一覧を取得
get_the_terms()投稿に設定されたタームを取得
get_term_link()ターム一覧ページのURLを取得

3.ナビゲーションメニューの関数

関数主な役割
register_nav_menus()メニューの表示位置を登録
wp_nav_menu()登録したメニューを表示
has_nav_menu()メニューが設定されているか確認

4.functions.phpでよく使う関数

関数主な役割
add_theme_support()アイキャッチ画像などのテーマ機能を有効化
register_sidebar()ウィジェットエリアを登録
register_post_type()カスタム投稿タイプを登録
register_taxonomy()カスタムタクソノミーを登録
add_shortcode()ショートコードを登録
add_action()指定したタイミングで処理を実行
add_filter()データを加工して返す処理を登録

5.CSS・JavaScriptを読み込む関数

関数主な役割
wp_enqueue_style()CSSファイルを読み込む
wp_enqueue_script()JavaScriptファイルを読み込む
wp_localize_script()JavaScriptへPHPの値を渡す
wp_add_inline_style()インラインCSSを追加
wp_add_inline_script()インラインJavaScriptを追加

まとめ

WordPressには多くの関数がありますが、最初からすべてを暗記する必要はありません。

まずは、次のように目的ごとに整理して覚えていきましょう。

  • テンプレートを読み込む
  • 投稿情報を表示・取得する
  • 画像やURLを扱う
  • ページの種類を判定する
  • メニューやテーマ機能を登録する

制作中に「何をしたいのか」を整理し、目的に合った関数を調べながら使うことが大切です。

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!