関 数

WordPressには、たくさんのPHP関数があります。
テンプレートをカスタマイズする際には、これらを使うことになりますので、主要な関数だけでもその使い方を知っておいた方がいいでしょう。

WordPressの関数は、テンプレートタグインクルードタグ条件分岐タグプラグインAPIコア関数といったように分類されています。
しかしまあ、分類の名称にはあまりこだわらないで、関数それぞれについてどういう使い方をしてやればどういう結果が生じるかということだけ理解すればいいと思います。have_posts() なんかは条件分岐タグかと思っていたら、Codexでは条件分岐タグの一覧の中にないんですね。

すべての関数はWordPress Codex日本語版で解説されていますが、初心者には分かりづらいので補足の意味で少し書いておきます。大雑把なイメージを把握することを優先していますので、詳細ならびに正確なところは Codex を参照してください。

テンプレートタグ

テンプレートタグというのは、なんでこんな呼称になったのかよく解りませんが、テンプレートの中で記事のタイトルや本文などの情報を取得したり表示させるための関数群です。
テンプレート内で使うわけですが、ループの中でしか使えない関数とそうでない関数がありますので注意が必要です。

また、下記の bloginfo() のように直接画面に表示する関数と、get_bloginfo() のようにブログに関する情報を取得するだけのものがありますので、使い分けに注意してください。

例えば、

は同じ結果になります。

大きく分けてループの外でも使えるものと、ループの中でしか使えないものの2通りがあります。

WordPressのメインループは、グローバル変数 $wp_query に読み込まれた複数の投稿を、the_post() を呼び出すことにより一つずつポインターをすすめて処理していくわけですが、ループ内でしか使えない関数はこの the_post() のセットアップした情報を使って投稿を特定しているようです。なのでループ外では使えないということになります。

ですから例えば、the_title() と get_the_title() は似通った機能を持っていますが、the_title()がループ内でしか使えないのに対し get_the_title() は投稿IDをパラメータとして与えることでループ外でも使用できるのだと考えていいでしょう。

ループの外でも使える関数

  • bloginfo()

    ブログ(サイト)のURLや名前などブログに関する情報を表示する。

  • get_bloginfo()

    PHP コード内の他の部分で使用できるようにサイトに関する情報を返します。

  • wp_nav_menu()

    ナビゲーションメニューを表示します。ナビゲーションメニューとは、管理画面の[外観]-[メニュー]で作成したメニューです。

  • get_the_title()

    投稿 ID を元に、投稿のタイトルを取得します。

ループ内でしか使えない関数

ループの元になるクエリー結果は配列になっていますが、その個々の要素、すなわち個別記事などが対象になります。

  • the_title()

    現在の投稿のタイトルを echo パラメータの与え方により。表示あるいは取得します。

  • the_permalink()

    ループ の中で処理されている投稿の パーマリンク の URL を表示します。

  • the_category()

    現在の記事が属するカテゴリーへのリンクを表示します。

  • the_time()

    現在の投稿の時間が表示されます。

  • the_content()

    現在の投稿の本文を表示します。

  • the_excerpt()

    現在の投稿の抜粋(最初の120語)を、文末に […]をつけて表示します。

テンプレートタグにはこの他にもたくさんあります。上記以外のものについてはCodex日本語版 テンプレートタグを参照ください。

インクルードタグ

インクルードタグは、テンプレートの中に別のテンプレートを挿入するためのものです。例えば、投稿記事を表示するテンプレート single.php では、一番最初に <?php get_header(); ?> と書かれていますが、これは header.php を読み込むというインクルードタグ get_header() を実行しているのです。このようにヘッダー、フッター、サイドバーなどのテンプレートを別にして、上位のテンプレートで読み込むようにすることで、ヘッダーなどを共通化することができるようになっています。

get_header()/get_footer()/get_sidebar()/get_template_part()
/get_search_form()/comments_template()
といったものがあります。

個々のインクルードタグについてはCodex日本語版 インクルードタグを参照ください。

インクルードタグは、テンプレートタグに分類されていることもあります。

条件分岐タグ

条件分岐タグは、ある条件にあてはまるページだけを表示するときの条件判定に使う true もしくは false の値を返す関数です。

  • is_single()

    現在、添付ファイルや固定ページ以外の個別の記事を表示しているかどうかをチェックします。

  • is_page()

    個別の固定ページを表示しているかどうかをチェックします。

  • is_tag()

    指定された投稿タグのアーカイブページが表示されている場合は true を、そうでない場合は false を返します。

  • taxonomy_exists()

    タクソノミー名をパラメータとして渡すことによってそのタクソノミー名が存在するかどうかをチェックします。

  • term_exists()

    指定されたターム(タクソノミーの項目)が存在するかチェックし、タームの ID か、タームの配列を返します。

条件分岐関数はこの他にもたくさんあり、様々な条件で表示内容をコントロールできます。
全関数およびパラメータなどについてはCodex日本語版 条件分岐タグを参照してください。

プラフインAPI

プラグインAPIというのは、プラグインを開発するときに使う関数群ですが必ずしもプラグインの開発でしか使ってはいけないというものではありません。
データベースを更新するとか閲覧者が何か操作したとか、データベースから読み込んだデータを画面に表示しようとしたとかいうイベントに応じて実行される関数です。

プラグインAPIには、アクションフックとフィルターフックがあります。

プラグインAPIについては、高橋のりさんが「WordPressをカスタマイズするなら覚えておきたいアクションフックとフィルターフック」で分りやすく解説されています。

コア関数

そして、上記以外のものをコア関数といっていいのでしょう。コア関数などというと、WordPressの奥深くで使うもので簡単なカスタマイズでは関係ないというような感じがしますが、そんなことはありません。たとえば have_post() などテンプレートをテキストエディッタで開くといきなり出て来る関数なども結構あります。

以下カスタマイズでよく使われるのではないかと思われるものを列挙しますが、説明に「表示」というのと「取得」という表現があります。「表示」はそのまま画面表示までやってくれるのですが(逆にいえば表示されてしまいます)、「取得」の場合は、echo などで表示してやらないと画面には表示されませんので使い分けてください。

  • have_post()

    現在の WordPress クエリにループできる結果があるかどうかをチェックします。

  • the_post()

    メインループのポインタを次の投稿へ進めます。メインループ中にこれが無いと無限ループしてしまいます。

  • get_the_ID()

    現在の記事のID(数値)を返す

  • the_ID()

    現在の投稿のIDを表示します。

  • get_terms()

    指定されたタクソノミー(カスタム分類)またはタクソノミーのリストについて、それに含まれるタームを取得します。

  • get_term()

    ターム ID を指定してタームの全データをデータベースから取得します。

  • the_terms()

    ある投稿に付けられたタームを文字列として表示します。

  • get_template_directory_uri()

    テンプレートファイルのあるディレクトリの URI を取得します。子テーマを使用している場合は親テーマのディレクトリURIを返します。

  • get_stylesheet_uri()

    現在のテーマの style.css のあるディレクトリのURIを返します。

スポンサーリンク