WordPressの自作テーマ用主要関数 Part3

おはようございます♪ Azusaです。

今回はPart2で予告していたとおり、条件分岐で使う関数をメインに紹介していきたいと思います。

ですがその前に、何故この関数を紹介してないんだというものが1つありましたので、そちらから紹介いたします。

the_content()

the_content関数はページのメインコンテンツである本文等を表示する関数です。

テーマを作っても内容が表示されないと意味がないので、何故この関数を最初に紹介しなかったのかが自分でも疑問です…。

基本的に引数無しで呼べば、URLをもとにして該当記事の本文が読み込まれますので、本文を表示したい要素の中でこの関数を呼び出してあげれば問題ありません。

is_front_page()

is_front_page関数は、リクエストされたページがフロントページ(サイトのトップ)に指定されている場合に”true”を返す関数です。

トップページにのみ特定の要素を組み込みたい場合等にif関数等で条件分岐するために使うことができます。

is_home()

is_home関数は、リクエストされたページがブログのトップページである場合に”true”を返します。

一見”is_front_page()”と同じように感じますが、サイトのトップページを固定ページにしていて、ブログ投稿のリストページを別に設定している場合など、リクエストされたページがブログ投稿のインデックスページの場合にのみ”true”を返してくる点に注意が必要です。

サイトのトップページに対するリクエストの場合の返り値TOPページがブログインデックスページと同じ場合TOPページを固定ページに変更していてブログインデックスページが別にある場合
is_front_page()truetrue
is_home()truefalse
ブログ投稿のインデックスページに対するリクエストの場合の返り値TOPページがブログインデックスページと同じ場合TOPページを固定ページに変更していてブログインデックスページが別にある場合
is_front_page()truefalse
is_home()truetrue

上記表のようにあくまでもis_front_page関数はトップページであるかを、is_home関数はブログのインデックスページであるかを元に判断されます。

is_single()

is_single関数はブログ投稿の単一ページである場合に”true”を返す関数です。

基本的にブログの単一投稿のテンプレートとしては”single.php”を使うと思いますが、ヘッダーなどを共通で利用する場合等の同一ファイル内での条件分岐に利用できます。

is_sticky()

is_sticky関数は、投稿がブログのトップに固定されている場合に”true”を返す関数です。

ブログのインデックスページで、トップに固定している投稿だけを別の表示方法にしたい場合等に、条件分岐として利用することで、別の表現をすることが可能になります。

is_page()

is_page関数はリクエストされたページが固定ページである場合に”true”を返す関数です。

固定ページのテンプレートは”page.php”にて作成する場合が多いかと思いますが、is_single関数の項目でも書いたとおり、ヘッダー等の共通ファイルを読み込む場合等の同ファイル内での条件分岐をする場合に利用できます。

is_author()

is_author関数はリクエストされたページが、著者ごとのページである場合に”true”を返す関数です。

is_archive()

is_archive関数は、リクエストされたページが、カテゴリやタグ・日付ごと等の各種アーカイブページである場合に”true”を返す関数です。

このタグではカテゴリやタグなど一纏めになっていますが、別々で使いたい方は次の項目で紹介するis_tag関数等を使いましょう。

is_tag()

is_tag関数はリクエストされたページが、タグのアーカイブページである場合に”true”を返す関数です。

引数にカテゴリ名等を指定することで、投稿にそのタグが設定されているかを判断することもできます。

is_tag('PHP'); // true

is_tag('javascript'); // false

is_category()

is_category関数はリクエストされたページが、カテゴリのアーカイブページである場合に”true”を返す関数です。

is_tag関数と同様に、引数にカテゴリ名等を指定することで、その投稿が指定したカテゴリに属しているかをチェックすることができます。

is_404()

is_404関数は、リクエストされたページの結果が404である場合に”true”を返します。

404エラーとはドキュメントが存在しない場合のエラーであり、リンク先の記事が存在しなかったりした場合に返されるエラーです。

404エラーページのテンプレートには”404.php”がある場合はそちらが優先的に使われますが、”404.php”を準備していない場合や、その他の読み込みファイルにて条件分岐する場合等に利用することができます。

コンテンツループ

コンテンツループに関してですが、あまり深く解説している記事が見つからずにあまり詳しくかけないので、テンプレだけで勘弁してください><

ブログのインデックス等のページでは下記コードの内側の部分がループされて、リストにあるページの情報を順次書き出していく処理になります。

<?php if(have_posts()){
    while(have_posts()){
        the_post();
        // ここにループ時の処理を書く
        // もしくはget_template_part()でループ用のテンプレートファイルを読み込む
    }
} ?>

the_posts_pagination();

the_posts_pagination関数はページネーションを表示するための関数です。

ブログのインデックスページ等の次のページや前のページへのリンクを表示することができます。

この関数には配列で表示方法をカスタマイズすることができますが、情報量が多いため、公式のリファレンス等で確認いただけると嬉しいです。

また、以前使われていたページネーションの関数と引数は基本的に同じなのでこちらも参考にしてください。

さて、今回の紹介で最低限のテーマ作成に使いそうな関数は紹介できたかなと思います!

簡単な関数の紹介はこれまでですが、今後気が向いたらテーマ作成時に使うファイルのリスト等の紹介もできたらいいなと考えております。

ではまた、次回の記事で♪

まとめページはこちらです↓

コメントを残す