Weblasts

個人的によく使うWPテンプレートタグ・関数まとめ

ワードプレスを使ったサイトをテーマから作る場合、この記事で紹介するテンプレートタグを利用することが多いと思います。

誰かのテーマを使ってサイトを構築している場合も、サイトの調整が必要なときは操作する機会が多いと思われるテンプレートタグの使い方をまとめていきます。

テンプレートタグとは?

WPにおいて何かを表示させたり、何かを取得したりするときに使うPHPで作られたWP専用の関数のことを指します

使い方はPHPの開始タグと閉じタグの間に書き込むだけで、ほとんどのテンプレートタグの最後には()が付き()の中にはパラメータを入れて使います(パラメータは省略もできる)
※()自体は省略できない

インクルードタグ

インクルードタグはテンプレート内で、他のテンプレートを読み込むために使うテンプレートタグです。

もちろん、PHPの「require」や「include」も利用できますが、こちらのほうが簡単ですよとwpのcodexでは紹介されています。

get_header()

有効化されているテーマフォルダ直下にある「header.php」または、「header-{任意の名前}.php」を読み込むテンプレートタグ。

「header-{任意の名前}.php」を読み込みたい場合は任意の名前部分({}は除く)をパラメータに文字列の形で入れて使う

テーマフォルダ直下に、このファイルがないときは、代わりに 「wp-includes/theme-compat/header.php」が読み込まれます。

get_footer()

有効化されているテーマフォルダ直下にある「footer.php」または、「footer-{任意の名前}.php」を読み込むテンプレートタグ。

「footer-{任意の名前}.php」を読み込みたい場合は任意の名前部分({}は除く)をパラメータに文字列の形で入れて使う

テーマフォルダ直下に、このファイルがないときは、代わりに 「wp-includes/theme-compat/footer.php」が読み込まれます。

get_sidebar()

有効化されているテーマフォルダ直下にある「sidebar.php」または、「sidebar-{任意の名前}.php」を読み込むテンプレートタグ。

「sidebar-{任意の名前}.php」を読み込みたい場合は任意の名前部分({}は除く)をパラメータに文字列の形で入れて使う

テーマフォルダ直下に、このファイルがないときは、代わりに 「wp-includes/theme-compat/sidebar.php」が読み込まれます。

get_template_part()

有効化されているテーマフォルダ直下にあるheader・footer・sidebar以外のテンプレート(パーツテンプレート)を読み込むテンプレートタグ。

パラメータにテンプレートのファイル名(拡張子を除く)を文字列で入れて使う。

get_search_form()

有効化されているテーマフォルダ直下にある「serchform.php」を読み込むテンプレートタグ。

serchform.phpが無いときは、代わりに検索フォームが生成されます。

comments_template()

有効化されているテーマフォルダ直下にある「comments.php」を読み込むテンプレートタグ。

comments.phpが無いときは、代わりに wp-includes/theme-compat/comments.php を読み込みます。

覚えておきたい関数

以下に紹介する関数は必須といっても過言ではないものになります

wp_head()

wp_head()はhead要素の最後に配置する関数で、wp_headアクションフックを起動させます。

テーマに依存しますが、最も重要なテーマのフックの1つで、テーマで必要なコードやプラグインに必要なコードをhead要素内に出力するなど、かなり広くサポートされています。

wp_footer()

wp_head()はbody要素の最後に配置する関数で、wp_footerアクションフックを起動させます。

wp_footerアクションフックはデフォルトでアドミンバーを出力知る役割を持っています。

プラグイン関係でも使われるので必ず入れておきたい関数です

覚えておきたいテンプレートタグ

個人的によく使うテンプレートタグを紹介しますが、ここで紹介しているもの以外でも同じようなことができるものもあるのでここに書いているものが必ず正しいと言ったわけではありません

メインループ

ループと呼ばれる設定を行うためのテンプレートタグ群で、メインクエリで取得したデータを正常に出力するために使う

記事の情報などを出力する場合はだいたいこの中に処理を書く

body_class()

body開始タグの中に入れるテンプレートタグで、ページやユーザーの状態に合ったクラスを出力してくれるのでページごとに装飾を変えたいときの足掛かりにな理とっても便利

パラメータに追加で出力したい文字列を入れることができる

bloginfo()

WPで構築したサイトの様々な情報を出力できるテンプレートタグで、出力内容はパラメータに文字列の形で指定できる

使えるパラメータと出力内容は下の表にまとめました。

パラメータ 出力内容
name 「設定」→「一般設定」サイトのタイトルを出力
description 「設定」→「一般設定」キャッチフレーズ・このサイトの簡単な説明を出力
admin_email 「設定」→「一般設定」メールアドレスを出力
個人情報は出力したくない
url 「設定」→「一般設定」サイトアドレス (URL)を出力
wpurl 「設定」→「一般設定」WordPress アドレス (URL)を出力
stylesheet_directory スタイルシートディレクトリのURLを出力
stylesheet_url スタイルシートのURLを出力
template_directory テンプレートファイルディレクトリのURLを出力
template_url テンプレートのURLを出力
atom_url AtomフィードのURLを出力
rss2_url RSS2.0フィードのURLを出力
rss_url RSS0.92フィードのURLを出力
pingback_url ピンバックのURLを出力
rdf_url RDF/RSS1.0フィードのURLを出力
comments_atom_url コメントのAtomフィードのURLを出力
comments_rss2_url コメントのRSS2.0フィードのURLを出力
charset 文字コードを出力
html_type メディアタイプを出力
language 言語を出力(ja)
text_direction 設定されているテキストの向きを出力
version WordPressのバージョンを出力

wp_title()

wp_title()は、表示しているページのタイトルを自動的に出力してくれるテンプレートタグで、bloginfo()と組み合わせてtitle要素内で使うと「記事のタイトル》サイトタイトル」という形に自動でtitleを出力できる

デフォルトのまま使うと記事タイトルの右側に区切り文字として「》」が出てくるので変えたい場合はパラメータから調整する

  • 1つ目のパラメータは区切り文字の指定
  • 2つ目のパラメータはtrueかfalseで指定trueでタイトルを表示し、
    falseでタイトルの値を返す
  • 3つ目のパラメータは区切り文字をタイトルの左右どちらに出力するかを指定

get_stylesheet_uri()

get_stylesheet_uri()はテーマフォルダ直下にある「style.css」までの絶対パスを取得するテンプレートタグで、link要素内のhref属性の中に出力する形で使う

get_template_directory_uri()

get_template_directory_uri()は、テーマフォルダまでの絶対パスを取得するテンプレートタグで、style.css以外のCSSやJSファイル・imgファイルなどを読み込むときに使う

※あくまでもテーマフォルダまでなので、このテンプレートタグの後は「/」記号を付けて使う

home_url()

トップページのURLを取得するテンプレートタグ

パラメータにトップからの相対パスを入れて、特定ページへのリンクを取得することもできる

get_permalink()

パラメータにIDを入れるとパーマリンクを取得できるテンプレートタグでループの外で使うことができます

get_page_by_titleを使って、タイトルからIDを取得することもできるので使い勝手は良いと思います

取得しかしてくれないので、出力しましょう

php post_class()

ループ内で記事全体を囲んだ要素に付けるテンプレートタグでページやユーザーの状態に合ったクラスを出力してくれます

パラメータに追加で出力したい文字列を入れることなんかもできる

the_title()

記事のタイトルを出力するテンプレートタグ

ループ内外で使えるので便利

the_content()

投稿や固定ページの本文を出力するテンプレートタグ

the_category()

記事が属するカテゴリーをリンク付きの箇条書きリストで出力するテンプレートタグで、リンクの移動先はカテゴリー別の一覧ページになってます

パラメータには区切り文字を指定できて、区切り文字を指定すると箇条書きリストは解除されて、ただのリンクになります

the_tags()

記事につけられたタグをリンク付きで出力

タグというラベルが自動で出力されカンマ区切りに出力される

get_the_date()

記事の投稿日を取得するテンプレートタグ

取得する形式はパラメータで指定でき、よく使うものは「(‘Y-m-d’)」

previous_post_link()

前の記事へのリンク文字列を出力するテンプレートタグ

一つ目のパラメータは固定

二つ目のパラメータは表示したい形式にする。この時[%title]がリンク文字列に置き換わる

php next_post_link()

次の記事へのリンク文字列を出力する

一つ目のパラメータは固定

二つ目のパラメータは表示したい形式にする。この時[%title]がリンク文字列に置き換わる

dynamic_sidebar()

functions.phpに「register_sidebar()」でウィジェット機能を有効にしている場合に使える、登録したウィジェットを出力するテンプレートタグ

各項目は出力の際、li要素に囲まれた状態で出力されるのでテンプレートタグはulタグで囲んでおく

ウィジェットを使わずカテゴリー一覧のリンクを出したいとき

get_post_meta()

カスタムフィールドの内容を取得するテンプレートタグ

the_post_thumbnail()

アイキャッチ画像を出力するテンプレートタグで、サイズはパラメータで指定する

パラメータ画像サイズ
thumbnailサムネイルサイズ
medium中サイズ
large大サイズ
fullフルサイズ

single_cat_title()

ループの外で使うカテゴリーページでカテゴリー名を出力するテンプレートタグで、カテゴリーページ以外では何も出力しない。

the_excerpt()

投稿の抜粋を表示するテンプレートタグでループ内で強制的に抜粋を表示するときに使用します。

WP Multibyte Patchのプラグインが有効になっていればデフォルトで110文字まで(フィルターフックで変更可能)の抜粋文が表示される

カスタマイズはfunctions.phpで

if($wp_query->max_num_pages>1):endif;

記事などをリストアップするとき、1ページに収まらないときに使う条件分岐で、ページャーを出したりするときに便利

next_posts_link()

ループの外で使う、記事一覧が設定した数より多い場合に使うページャーで、古い記事一覧ページへのリンクを出力する

previous_posts_link()

ループの外で使う、記事一覧が設定した数より多い場合に使うページャーで、新しい記事一覧ページへのリンクを出力する

the_posts_pagination()

ペーシャーを出力するテンプレートタグで豊富なオプションが用意されています。

あまり情報がないのでいろいろ試してもらうしかないですのですが一応使えそうなものを載せておきます。