WordPress では、用意されている専用タグを利用しながらテーマを作っていく。専用タグは PHP の function機能によって事前にあらゆるものが定義されている。

WordPressタグは機能の重複もあるし、良くも悪くも PHP - ハウルの動く城式言語と同じ感じ。公式wiki も非常に分りづらい。いずれこのセクションで綺麗に整理する。

  • テンプレートタグ
  • 条件分岐タグ
  • ???

テンプレートタグ

テンプレートタグは、WordPressタグの中でも特に「テーマ作成用」に用意されているタグ。データベースからあらゆる情報を引っ張ってきてくれる。

テンプレートタグ群は wp-includesディレクトリの中で9つに分類されて収納されている。

  1. general-template.php
  2. nav-menu-template.php
  3. author-template.php
  4. post-thumbnail-template.php
  5. post-template.php
  6. category-template.php
  7. bookmark-template.php
  8. link-template.php
  9. comment-template.php

general-template.php(一般タグ)

get_header header.php を取得
get_sidebar sidebar.php を取得
get_footer footer.php を取得
get_search_form searchform.php を取得。無ければ 組み込みの検索フォーム
get_template_part 指定の自作テンプレートファイルを取得
comments_template comments.php を取得。無ければ組み込みの検索フォーム
wp_login_url ユーザをログインさせるためのリンクを返す
wp_loginout ログイン・ログアウトのリンクを表示
wp_logout_url ユーザを安全にログアウトさせるさせるためのリンクを返す
wp_login_form ログインフォームを表示
wp_lostpassword_url パスワードを再取得するためのリンクを表示
wp_registar ユーザ登録のリンクを表示。許可している場合のみ
wp_meta sidebar.php やメタウィジェットに任意のリンクを追加
bloginfo サイトタイトルやサイトURLなど、サイトに関するあらゆる情報を表示
get_bloginfo PHPコード内で利用するためにサイトに関する情報を取得
get_current_blog_id ブログIDを取得。マルチサイト運用時に条件分岐させたい時など
wp_title 現在のページタイトルを表示。ver 4.4以降から非推奨
wp_get_document_title function.php に記述。現在のページタイトルを取得。ver 4.4以降から推奨
single_post_title 個別記事ページでループの外に記事タイトルを表示
post_type_archive_title 現在の投稿タイプのアーカイブページのタイトルを取得
single_cat_title 現在のページのカテゴリタイトルを取得
single_tag_title 現在のページのタグタイトルを取得
single_term_title 現在のページのタームタイトルを取得。通常はカスタム分類ページで利用
single_month_tilte 現在のページの月・年名を取得。月別アーカイブページにて利用
get_archives_link アーカイブページへのリンクを取得
wp_get_archives 日付ベースのアーカイブリストを表示
calender_week_mod 週が始まる日付を取得
get_calender カレンダーを表示
delete_get_calender_cache 取得したカレンダーに関するキャッシュを削除
allowed_tags 許可されている全てのタグを属性と一緒に HTMLフォーマットで表示
wp_enqueue_script 依存関係を解決しつつ適切なタイミングで生成されたページにリンク。JavaScript のリンク時に推奨

nav-menu-template.php(ナビゲーションタグ)

wp_nav_menu ナビゲーションメニューを表示
walk_nav_menu_tree ナビゲーションメニューの HTMLリストを取得

author-template.php(投稿者タグ)

get_author 投稿者の表示名を取得。ループ内で利用
get_the_author 投稿者のユーザ名を取得。ループ内で利用
the_author_link 投稿者のユーザ名を Webサイトリンク付きで表示
get_the_author_link PHP内で使うデータとして投稿者のユーザ名を Webサイトリンク付きで取得
the_author_meta 投稿者のメタ情報から好きな項目を表示
get_the_author_meta PHP内で使うデータとして投稿者のメタ情報から好きな項目を取得
the_author_posts 投稿者の投稿数を表示
get_the_author_post PHP内で使うデータとして投稿者の投稿数を取得
the_author_post_link 投稿者の記事一覧ページへのリンクを表示
wp_dropdown_users ドロップダウンメニューを利用してユーザ一覧を表示
wp_list_authors サイトの投稿者リストを表示
get_author_posts_url 投稿者の記事投稿アーカイブページへの URL を取得

post-thumbnail-template.php(アイキャッチ画像タグ)

get_post_thumbnail_id アイキャッチ画像の ID を取得
the_post_thumbnail アイキャッチ画像を表示
get_the_post_thumbnail アイキャッチ画像の HTMLタグを出力

post-template.php(投稿タグ)

body_class bodyタグに現在の投稿IDをクラス属性として付加
next_image_link 次の画像へのリンクを表示。通常は attachment.php で利用
previous_image_link 前の画像へのリンクを表示
next_post_link 次の投稿へのリンクを表示。通常は記事ページで利用
previous_post_link 前の投稿へのリンクを表示
next_posts_link 次の複数の投稿へのリンクを表示。通常は記事ページで利用
previous_posts_link 前の複数の投稿へのリンクを表示
post_class 現在の投稿IDをクラス属性として取得
post_password_required 投稿表示にパスワード入力が必要かどうかをチェック
posts_nav_link 前ページと次ページのナビリンクをセットで表示
the_content 投稿本文を表示。ループ内で利用。パラメータで「続きを読む」などの文字列も指定できる
the_excerpt 投稿の抜粋に [...] を付けて<p>で囲んで表示
get_the_excerpt 投稿の抜粋に [...] を付けて取得。ループ内で利用
the_excerpt_ress 投稿の抜粋をフィード形式で出力
the_ID 現在の投稿の ID を取得。ループ内で利用
post_meta 投稿メタ情報を表示
the_title 現在の投稿タイトルを取得。ループ内で利用
get_the_title 投稿ID を指定して投稿タイトルを取得
title_attribute 投稿タイトルを HTMLタグなどで装飾して表示
the_title_rss フィード用に整形された投稿タイトルを出力
wp_link_pages 投稿のページングリンクを出力
get_attachment_link 添付ファイルの URL を取得
wp_get_attachment_link より詳細な除法を含んだ添付ファイルへのリンクを取得
the_attachment_link 画像サイズなどを指定しつつ添付ファイルへのリンクを取得
is_attachment 添付ファイルの有無をチェック
wp_attachment_is_image 添付ファイルが画像かどうかチェック
wp_get_attachment_image 添付ファイルが画像の場合、その img要素を取得
wp_get_attachment_image_src 添付ファイルが画像の場合、その img要素の URL, 高さ, 幅を取得
wp_get_attachment_metadata 添付ファイルの ID を指定してメタデータを取得
get_the_date 投稿の日付を取得
single_month_title 投稿の月・年名を表示
the_date 記事の投稿日 / 更新日を表示
the_date_xml YYYY-MM-DD形式で記事の投稿日 / 更新日を表示
the_modified_author 投稿を最後に編集したユーザを表示
the_modified_date 投稿を更新した日付(時刻)を表示
the_modified_time 投稿を更新した時刻(日付)を表示
the_time 投稿の公開日時を表示。ループ内で利用
get_the_time 投稿の公開日時を取得
the_shortlink 投稿に短縮URL があればそれを表示
get_the_shortlink 投稿に短縮URL があればそれを取得

category-template.php(カテゴリータグ)

category_description カテゴリーの説明を取得
single_cat_title ループの外側でカテゴリー名を表示
the_category 現在のカテゴリーリンクを表示。ループ内で利用
the_category_rss 記事が所属するカテゴリーをフィード用にフォーマットされた形式で出力
the_dropdown_categorys ドロップダウンメニューを利用してカテゴリーリストを表示
wp_list_categorys リンク付きでカテゴリーリストを表示
single_tag_title 現在のページのタグタイトルを表示
tag_description タグの説明を表示
the_tags 記事のタグ一覧を表示
wp_geterate_tag_cloud タグクラウドを生成
wp_tag_cloud タグクラウドを表示
term_description タームID やタクソノミーを指定して特定のタームの説明を取得
single_term_title 現在のページのタームタイトルを取得。通常はカスタム分類ページで利用
get_the_term_list 指定のカスタム分類のターム一覧をリンク付きで表示
the_terms 記事に付けられたタームを表示
the_taxonomes 記事のカスタム分類のリストをリンク付きで表示

bookmark.php(ブックマークタグ)

wp_list_bookmarks サイト内へのリンクを自由に指定してリスト表示
get_bookmark ブックマークリンクID を元にしてブックマークデータを取得
get_bookmark_field 単一のブックマークデータを取得
get_bookmarks 複数のブックマークデータを取得

link-template.php(リンクタグ)

user_trailingslashit パーマリンク末尾のスラッシュを調整する
permalink_ancher id や title 付きのアンカータグを出力。ループ内で利用
the_permalink 記事のパーマリンクを表示。ループ内で利用
get_permalink 記事のパーマリンクを取得。ループの外で利用
get_post_permalink カスタム投稿タイプのパーマリンクを取得
post_permalink 記事ページのパーマリンクを取得
get_page_link 特定の固定ページのパーマリンクを取得
get_attachment_link PHP内で使うデータとして添付ファイルのマーマリンクを取得
edit_comment_link コメント編集のリンクを表示。ログイン時に限る
edit_post_link 投稿編集のリンクを表示。ログイン時に限る
get_edit_post_link 投稿編集リンクの RUL を取得
get_delete_post_link 投稿をゴミ箱に入れる URL を取得
edit_tag_link タグを編集するリンクを表示。ループ内で利用
get_admin_url 管理画面の URL を取得
get_home_url 指定のプロトコルを付加した home.php の URL を取得
get_site_url サイトの URL を取得
home_url home.php の URL を取得
site_url コアファイルが置かれているパスを取得
get_search_link 検索ページの URL を取得
get_search_query サイト内検索を行った時のクエリを取得
the_search_query サイト内検索を行った時のクエリを表示
the_feed_link フィードの URL を取得

comment-template.php(コメントタグ)

(使う予定がないので省略)

条件分岐タグ

条件分岐を行いたいときに利用できるタグ。

is_front_page フロントページかどうか
is_home 固定されたトップページかどうか
is_admin 管理画面かどうか
is_admin_bar_showing 管理バーが表示されているかどうか
is_single 記事ページかどうか
is_single('[id] | [slug]') 指定の記事ID あるいは記事スラッグのページかどうか
is_sticky 先頭固定記事かどうか
is_sticky('[id] | [slug]') 指定の記事ID あるいは記事スラッグの先頭固定記事かどうか
is_page 固定ページかどうか
is_page('[id] | [slug]') 指定の固定ページID あるいは固定ページスラッグのページかどうか
is_page('template') 指定のテンプレートファイルかどうか
is_cateogry('[id] | [slug]') 指定のID あるいはスラッグのカテゴリページかどうか
is_tag() タグページかどうか
is_tag('hoge') hogeタグを含むページかどうか
is_archive アーカイブページかどうか
is_tax カスタム分類ページかどうか
is_tax('hoge') hoge というカスタム分類のページかどうか
has_term('hoge') hogeタームを持つかどうか
is_author 著者ページかどうか
is_author([id] | [name]) 指定のID あるいは名前の著者ページかどうか
is_date 日付アーカイブページかどうか
is_year 年別のアーカイブページかどうか
is_month 月別のアーカイブページかどうか
is_time 時刻別のアーカイブページかどうか
is_new_day 投稿の日付が新しいかどうか
is_search 検索結果ページかどうか
is_404 エラーページかどうか
is_atttachment 添付ファイルページかどうか
is_singler is_single, is_page, is_attachment のいづれかかどうか
has_excerpt 抜粋があるかどうか
has_excerpt('[id]') 指定の投稿ID の抜粋があるか
has_nav_menu 登録済みナビゲーションメニューがあるかどうか
in_the_roop ループ内かどうか
is_dynamic_sidebar テーマがダイナミックサイドバーに対応しているかどうか
is_multisite マルチサイト機能を利用しているかどうか
is_super_admin ユーザが root かどうか
is_user_logged_in ユーザがログイン中かどうか
is_child_theme 子テーマが利用されているかどうか
has_post_thumbnail 投稿にアイキャッチ画像が登録されているかチェック

既存テーマの変更

テーマがアップデートされた時に自分で修正した箇所がクリアされてしまうため、既存のテーマを修正する場合は「子テーマ」の利用が推奨されている。