WordPress でテーマ制作する際にいつも調べるのが面倒なので、主に使用する関数をまとめました。

タグ関連

get_the_tags

アーカイブページ・投稿ページで投稿につけられたタグ情報を配列として取得します。主にループ内で使用します。
(array|false|WP_Error) get_the_tags( int $id = 0 )

パラメーター

引数 デフォルト 説明
$id int 現在の投稿 ID 投稿 ID

使用例

<?php if (get_the_tags()) { ?>
<div class="tags">
    <i class="fas fa-tag"></i>
    <?php the_tags('', ',', ''); ?>
    </div>
<?php
}

the_tags

アーカイブページ・投稿ページで投稿につけられたタグが出力されます。主にループ内で使用します。
void the_tags( string $before = null, string $sep = ', ', string $after = '' )

パラメーター

引数 デフォルト 説明
$before string null リストの最初に入れるHTML/文字
$sep string 各タグの間に入れるHTML/文字
$after string リストの最後に入れるHTML/文字

使用例

<?php if (get_the_tags()) { ?>
<div class="tags">
    <i class="fas fa-tag"></i>
    <?php the_tags('', ',', ''); ?>
    </div>
<?php
}

出力例

上記の使用例の場合には以下のようなHTMLが出力されます。
<div class="tags">
    <i class="fas fa-tag"></i>
    <a href="..." rel="tag">タグ名1</a>,<a href="..." rel="tag">タグ名2</a> 
</div>
the_tags('<ul><li>', '</li><li>', '</li></ul>');
のようにするとリスト要素で囲むことができます:
<ul>
    <li><a href="..." rel="tag">タグ名1</a></li>
    <li><a href="..." rel="tag">タグ名2</a></li>
</ul>

カテゴリー関連

get_the_category

アーカイブページ・投稿ページで投稿につけられたカテゴリー情報を配列として取得します。主にループ内で使用します。関数内では get_the_terms( $id, 'category' ) が実行されているため、この関数で取得できるのはデフォルトのカテゴリーのみです。カスタムタクソノミーについては get_the_terms 関数を使用します。
(array|false|WP_Error) get_the_category( int $id = 0 )

パラメーター

引数 デフォルト 説明
$id int 現在の投稿 ID 投稿 ID

使用例

<?php if (get_the_category()) { ?>
<div class="tags">
    <i class="fas fa-tag"></i>
    <?php the_tags('', ',', ''); ?>
    </div>
<?php
}

wp_list_categories

登録されているカテゴリーのリストを取得します。アーカイブページ・投稿ページで使用することで、カテゴリーページへのリンクを表示することができます。
(false|string) wp_list_categories( string|array $args = '' )

パラメーター

$args の一覧は Codex を参照してください。主に使用するのは以下のキーです。
パラメータ デフォルト 説明
title_li string __( 'Categories' ) 箇条書きの外側に表示するタイトルと表示形式
hide_empty (bool|int) 1 投稿のないカテゴリーを非表示にするかどうか

使用例

wp_list_categories( array(
    'title_li' => '',
    'hide_empty' => false
) );

日付関連

get_the_time

アーカイブページ・投稿ページで投稿が作成された時間が出力されます。主にループ内で使用します。
(string|int|false) get_the_time( string $d = '', int|WP_Post $post = null )

パラメーター

引数 デフォルト 説明
$d string ‘G’, ‘U’ もしくは PHP のデータフォーマット
$post (int|WP_Post) null 投稿ID、もしくは WP_Post オブジェクト。デフォルトではグローバル変数の $post になります。

the_time

アーカイブページ・投稿ページで投稿が作成された時間が出力されます。必ずループ内で使用します。
void the_time( string $d = '' )

パラメーター

引数 デフォルト 説明
$d string ‘G’, ‘U’ もしくは PHP のデータフォーマット

使用例

<time datetime="<?= the_time( 'c' ) ?>"><?= the_time( 'Y.n.j' ); ?></time>

wp_get_archives

アーカイブへのリンクを出力します。
(string|void) wp_get_archives( string|array $args = '' )

パラメーター

$args の一覧は Codex を参照してください。主に使用するのは以下のキーです。
パラメータ デフォルト 説明
show_post_count bool false 投稿数を表示するかどうか
before (string) アーカイブページへのリンクの前に挿入するHTML
after (string) アーカイブページへのリンクの後ろに挿入するHTML
post_type (string) post 投稿タイプ

使用例

wp_list_categories( array(
    'title_li' => '',
    'hide_empty' => false
) );

アイキャッチ画像(サムネイル画像)関連

get_post_thumbnail_id

アーカイブページ・投稿ページで投稿のアイキャッチ画像の ID を取得します。主にループ内で使用します。取得した ID を wp_get_attachment_image_src 関数に渡すことでアイキャッチ画像の情報を取得することができます。
(string|int) get_post_thumbnail_id( int|WP_Post $post = null )

パラメーター

引数 デフォルト 説明
$post (int|WP_Post) null 投稿ID、もしくは WP_Post オブジェクト。デフォルトではグローバル変数の $post になります。

wp_get_attachment_image_src

添付画像のURL、幅、高さ、リサイズされた画像かどうかの情報を取得します。
(false|array) wp_get_attachment_image_src( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false )

パラメーター

引数 デフォルト 説明
$attachment_id int 添付画像の ID
$size (string|array) ‘thumbnail’ 画像のサイズ。’thumbnail’、’post-thumbnail’、’small’、’medium’、’large’などの文字列や、幅と高さのピクセル値を要素とする配列
$icon bool 画像をアイコンとして扱うかどうか

戻り値

画像が見つかれば、URL、幅、高さ、リサイズされているかどうかの真偽値を要素とする配列が返ります。画像が見つからなければ false が返ってきます。

使用例

<?php $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); ?>
<amp-img src="<?= $thumbnail[0] ?>" width="<?= $thumbnail[1] ?>" height="<?= $thumbnail[2] ?>" layout="responsive"></amp-img>

ナビゲーション関連

the_posts_navigation

アーカイブページで「前の投稿」「次の投稿」のようなナビゲーションが出力されます。4.1.0 から導入されました。ページネーションが必要な場合は the_posts_pagination を利用してください。
void the_posts_navigation( array $args = array() )

パラメーター

$args は以下のようなキーを含む連想配列になります。
パラメータ デフォルト 説明
prev_text string __( 'Older posts' ) 前のページへのリンクテキスト
next_text string __( 'Newer posts' ) 次のページへのリンクテキスト
screen_reader_text string __( 'Posts navigation' ) nav要素のためのスクリーンリーダテキスト

使用例

<?php
the_posts_navigation( array(
    'prev_text' => '<',
    'next_text' => '>'
) );

出力例

<nav class="navigation posts-navigation" role="navigation">
    <h2 class="screen-reader-text">投稿ナビゲーション</h2>
    <div class="nav-links">
        <div class="nav-previous">
            <a href="...">過去の投稿</a>
        </div>
        <div class="nav-next">
            <a href="...">新しい投稿</a>
        </div>
    </div>
</nav>

the_posts_pagination

アーカイブページで「1」「2」「3」のようなページネーションが出力されます。4.1.0 から導入されました。
void the_posts_pagination( array $args = array() )

パラメーター

$argspaginate_links の引数と同じ連想配列です。主に使用するものは以下です。
パラメータ デフォルト 説明
show_all bool false すべてのページを表示するかどうか
prev_next bool true 前のページ・次のページへのリンクも表示するかどうか
prev_text string __( '« Previous' ) 前のページへのリンクテキスト
next_text string __( 'Next »' ) 次のページへのリンクテキスト
screen_reader_text string __( 'Posts navigation' ) nav要素のためのスクリーンリーダテキスト

使用例

<?php
the_posts_pagination( array(
    'prev_text' => '<',
    'next_text' => '>'
) );

出力例

<nav class="navigation pagination" role="navigation">
    <h2 class="screen-reader-text">投稿ナビゲーション</h2>
    <div class="nav-links">
        <a class="prev page-numbers" href="...">前へ</a>
        <a class="page-numbers" href="...">1</a>
        <span aria-current="page" class="page-numbers current">2</span>
        <a class="page-numbers" href="...">3</a>
        <a class="next page-numbers" href="...">次へ</a>
    </div>
</nav>

the_post_navigation

投稿ページで「前の投稿」「次の投稿」のようなナビゲーションが出力されます。4.1.0 から導入されました。
void the_post_navigation( array $args = array() )

パラメーター

$args は以下のようなキーを含む連想配列になります。
パラメータ デフォルト 説明
prev_text string '%title' 前のページへのリンクテキスト
next_text string '%title' 次のページへのリンクテキスト
screen_reader_text string __( 'Post navigation' ) nav要素のためのスクリーンリーダテキスト

使用例

<?php
the_post_navigation( array(
    'prev_text' => '<',
    'next_text' => '>'
) );

出力例

<nav class="navigation post-navigation" role="navigation">
    <h2 class="screen-reader-text">投稿ナビゲーション</h2>
    <div class="nav-links">
        <div class="nav-previous">
            <a href="..." rel="prev">[前の投稿のタイトル]</a>
        </div>
        <div class="nav-next">
            <a href="..." rel="next">[次の投稿のタイトル]</a>
        </div>
    </div>
</nav>

ファイル関連

get_theme_file_uri

テーマ内にあるファイルのURIを取得します。4.7.0から導入されました。以前は get_stylesheet_directory_uri 関数でテーマディレクトリへの URI を取得し、相対ファイルパスを文字列として連結することでファイルへの URI を取得していましたが、この関数にテーマディレクトリからの相対ファイルパスを与えることでファイルのURIが取得できるようになりました。
(string) get_theme_file_uri( string $file = '' )

パラメーター

引数 デフォルト 説明
$file string スタイルシートが置かれているディレクトリ内で探すファイル名

get_theme_file_path

テーマ内にあるファイルのパス名を取得します。4.7.0から導入されました。以前は get_stylesheet_directory 関数でテーマディレクトリへのパス名を取得し、相対ファイルパスを文字列として連結することでファイルへのパス名を取得していましたが、この関数にテーマディレクトリからの相対ファイルパスを与えることでファイルのパス名が取得できるようになりました。
(string) get_theme_file_path( string $file = '' )

パラメーター

引数 デフォルト 説明
$file string スタイルシートが置かれているディレクトリ内で探すファイル名

JavaScript 関連

wp_enqueue_script

テーマ制作をする際についつい header.phpfooter.php で JavaScript を直接読み込みたくなりますが、functions.php から wp_enqueue_script を呼び出してキューに入れるのが WordPress らしい JavaScript の読み込みです。wp_enqueue_scripts アクションにフックさせて呼び出します。後述する wp_add_inline_script と合わせると、jQuery のプラグインや Object-fit-images のようなポリフィルの読み込み + 起動をまとめて行うことができます。
void wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )

パラメーター

引数 デフォルト 説明
$handle string スクリプトの名前。固有のもの(同じ名前のものが他にない)でなければなりません
$src string スクリプトの完全な URL、もしくは WordPress のルートディレクトリからの相対パス
$deps array array() 依存関係にあるスクリプトの名前
$ver string|bool|null false スクリプトのバージョン
$in_footer bool false スクリプトの読み込み位置。true なら body要素の閉じタグの直前、false なら head 要素内

使用例

<?php
add_action( 'wp_enqueue_scripts', function() {
  wp_enqueue_script( 'vuejs', 'https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js', array(), '2.6.10', false );
} );

wp_add_inline_script

wp_enqueue_script でエンキューされているスクリプトの名前を指定することで、インラインの JavaScript を埋め込むことができます。wp_enqueue_scripts アクションにフックさせて呼び出します。よくある使用例としては、jQuery のプラグインを wp_enqueue_script で読み込ませ、プラグインの起動コードをインラインで埋め込むような場合です。
(bool) wp_add_inline_script( string $handle, string $data, string $position = 'after' )

パラメーター

引数 デフォルト 説明
$handle string インラインスクリプトを追加するスクリプトの名前。エンキューされているスクリプト名でなければならない
$data string インラインで追加するスクリプト
$position string ‘after’ スクリプトの後に追加するか前に追加するか

使用例

<?php
add_action( 'wp_enqueue_scripts', function() {
  wp_enqueue_script( 'object-fit-images', 'https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.4/ofi.min.js', array(), '3.2.4', false );
  wp_add_inline_script( 'object-fit-images', 'jQuery(function () { objectFitImages() });' );
} );