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() |
| URL | esc_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を取得する | サイトの公開URL | home_url( '/' ) | ロゴ・トップへ戻るリンク |
site_url() | WordPress本体の設置URLを取得する | WordPressアドレス | site_url() | WordPress設置先の確認 |
get_permalink() | 投稿・固定ページのURLを取得する | 個別ページURL | get_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を取得する | 子テーマ優先のファイルURL | get_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を扱う
- ページの種類を判定する
- メニューやテーマ機能を登録する
制作中に「何をしたいのか」を整理し、目的に合った関数を調べながら使うことが大切です。

