WordPressテンプレートタグ チートシート

WordPressテンプレートタグ チートシート

WordPressのテンプレートタグ、スラスラ書けますか?

私はWordPressのテンプレートタグがなかなか覚えられなくて、まとめサイトやチートシートを参考にさせてもらっています。
ただ、非推奨になったタグがそのまま使われていたりして「あれれ?この記述でいいのかな?」って調べることがよくあったので、よく使う基本的なタグを自分なりにまとめてみました!

インクルードタグ

インクルードタグは、あるテンプレートファイルの中で他のテンプレートファイルを読み込むときに使います。

インクルードタグ 読み込むファイル
<?php get_header(); ?> header.php
header-2.phpを読み込むときは<?php get_header( '2' ); ?>
<?php get_footer(); ?> footer.php
footer-news.phpを読み込むときは<?php get_footer( 'news' ); ?>
<?php get_sidebar(); ?> sidebar.php
sidebar-right.phpを読み込むときは<?php get_sidebar( 'right' ); ?>
<?php comments_template(); ?> comments.php(コメントテンプレート)
<?php get_search_form(); ?> searchform.php(検索フォーム)
<?php get_template_part(); ?> 任意のテンプレートファイル(ファイル名を自由に決めれる)
loop.phpを読み込むときは<?php get_template_part( 'loop' ); ?>
loop-search.phpまたはloop.phpを読み込むときは<?php get_template_part( 'loop', 'search' ); ?>
<?php include( TEMPLATEPATH . '/ファイル名.php' ); ?>は非推奨

非推奨のタグというのは、同じ役割の新しいテンプレートタグが作られたり、将来的に削除される予定のタグのことで「使っちゃダメ!」というわけではないけど、新規で作成する場合などは新しいテンプレートタグに切り替えていったほうがいいようです。

基本情報を出力するテンプレートタグ

テンプレートタグ 表示されるテキスト
<?php bloginfo( 'name' ); ?> 管理画面「一般設定」で設定したサイトのタイトルを表示
<?php bloginfo( 'description' ); ?> 管理画面「一般設定」で設定したキャッチフレーズを表示
<?php bloginfo( 'admin_email' ); ?> 管理画面「一般設定」で設定したメールアドレスを表示
<?php bloginfo( 'charset' ); ?> 文字コードを表示WordPressはデフォルトでUTF-8になっています。
<?php wp_title(); ?> ページタイトルを表示ページのタイトル | サイト名 と表示するときは
<?php wp_title( '|', true, 'right' ); bloginfo( 'name' ); ?>
<?php echo home_url(); ?> サイトのURLを表示<?php bloginfo( 'url' ); ?>は非推奨
<?php echo get_stylesheet_uri(); ?> スタイルシート(style.css)のURIを表示<?php bloginfo( 'stylesheet_url' ); ?>は非推奨
<?php echo get_stylesheet_directory_uri(); ?> スタイルシートのディレクトリのURIを表示親テーマのディレクトリを取得するときに使用します。<?php bloginfo( 'stylesheet_directory' ); ?>は非推奨
<?php echo get_template_directory_uri(); ?> テーマのディレクトリのURIを表示子テーマのディレクトリを取得するときに使用します。<?php bloginfo( 'template_url' ); ?>
<?php bloginfo( 'template_directory' ); ?>は非推奨
<?php bloginfo( 'atom_url' ); ?> AtomフィードのURLを表示
<?php bloginfo( 'rss2_url' ); ?> RSS2.0フィードのURLを表示
<?php wp_head(); ?> プラグインが使用するcssやjsファイルを自動で出力</head>の直前に記述します。
<?php wp_footer(); ?> プラグインが使用するcssやjsファイルを自動で出力</body>の直前に記述します。
<body <?php body_class(); ?>> bodyに自動的にクラス名を表示独自のクラス名を追加したいときは
<body <?php body_class( 'クラス名' ); ?>>

テンプレートタグ

テンプレートタグ 表示されるテキスト
<?php the_time(); ?> 記事の投稿日時を表示デフォルトでは時間だけの表示で、パラメータをいれると月日が表示します。
同じ日に複数の記事がある場合は、すべての記事に表示します。
<?php the_time( 'Y年m月d日' ); ?>
<?php the_date(); ?> 記事の投稿日時を表示デフォルトでは管理画面の一般>日付のフォーマットでの設定で表示します。
同じ日に複数の記事がある場合は、最初の記事にだけ表示します。
<?php echo get_the_date(); ?> 記事の投稿日時を表示同じ日に複数の記事がある場合は、すべての記事に表示します。
<?php the_title(); ?> 記事のタイトルを表示
<?php the_title_attribute(); ?> 記事のタイトルを表示タイトルに含まれるHTMLタグを削除して表示します。
aタグのtitle属性やサムネイルのalt属性にタイトルを入れるときはthe_title()よりthe_title_attribute()のほうがオススメ。
<?php the_content(); ?> 記事の本文を表示
<?php the_excerpt(); ?> 記事の抜粋を表示
<?php echo mb_substr(strip_tags($post-> post_content),0,200).'...'; ?> 記事の本文の文字数を制限して表示
(200文字で区切って語尾に…を追加)
<?php the_permalink(); ?> 記事のパーマリンクURLを表示
<?php the_category(); ?> 記事のカテゴリーをリンク付きで表示
<?php the_author(); ?> 記事の投稿者名を表示
<?php the_tags(); ?> 記事に設定されているタグを表示
<?php the_ID(); ?> 記事の記事IDを表示
<?php posts_nav_link(); ?> インデックスやアーカイブページが複数ページのとき、その前後のページへのリンクを表示
<?php next_post_link(); ?> 投稿ページで次の記事へのリンクを表示
<?php previous_post_link(); ?> 投稿ページで前の記事へのリンクを表示
<?php the_search_query();?> 検索フォームに入力された文字を表示
<?php trackback_url(); ?> 記事のトラックバックURLを表示
<?php wp_list_pages(); ?> 固定ページの一覧をリンク付きで表示
<?php wp_list_categories(); ?> カテゴリー一覧をリンク付きで表示デフォルトでは投稿のないカテゴリーは含まれない。
すべてのカテゴリーを取得するとき
<?php wp_list_categories( 'hide_empty=0' ); ?>
<?php wp_tag_cloud(); ?> タグクラウドを表示
<?php get_calendar(); ?> 投稿ページへのリンク付きカレンダーを表示
<?php wp_get_archives(); ?> リンク付きアーカイブリストを表示デフォルトでは月別アーカイブのリンクを表示します。
<?php wp_nav_menu(); ?> ナビゲーションメニューを表示メニューは管理画面のメニューで作成できます。

条件分岐タグ

条件分岐タグはif文を使って○○のページかどうか、表示される内容が○○かどうかを判断します。

条件分岐タグ 判断する内容・ページ
is_home() メインの投稿ページかどうか固定ページ、フロントページを設定していないときはトップページかどうかを判断します。
is_front_page() フロントページかどうか管理画面の表示設定>フロントページの表示 で設定したページに適用されます。
フロントページの表示 を設定しているときにトップページかどうか調べる場合は is_home() ではなく is_front_page() を使います。
is_single() 個別の投稿ページかどうか投稿ID、投稿タイトル、投稿名をパラメータとして指定できます。
is_page() 固定ページかどうかページID、タイトル、スラッグをパラメータとして指定できます。
is_archive() アーカイブページかどうかカテゴリー、タグ、作成者、日付のいずれかのアーカイブページ
is_category() カテゴリーのアーカイブページかどうかカテゴリーID, カテゴリーのタイトル、カテゴリーのスラッグをパラメータとして指定できます。
is_tag() タグのアーカイブページかどうかタグのスラッグをパラメータとして指定できます。
is_date() 日付のアーカイブページかどうか
is_paged() 複数にわたるページのときに2ページ目以降かどうかアーカイブページなど記事の一覧ページが複数のページになった場合に2ページ目以降かどうか判断します。
is_singular() 固定ページまたは個別投稿ページ、添付ファイルページかどうかパラメータを指定するとカスタム投稿タイプかどうか判断します。
‘book’というカスタム投稿タイプのページかどうかを判断するときは
is_singular( ‘book’ )
is_post_type_archive() カスタム投稿タイプのアーカイブページかどうか
is_admin() ダッシュボードまたは管理パネルかどうか

条件分岐タグの使い方

トップページの場合

<?php if ( is_home() ) : ?>
	トップページだけに処理させたい内容を記述
<?php else : ?>
	トップページ以外のページに処理させたい内容を記述
<?php endif; ?>

カスタム投稿「wordpress」ページの場合

<?php if( is_single( 'wordpress' ) ) : ?>
	wordpressページだけに処理させたい内容を記述
<?php else : ?>
	wordpressページ以外のページに処理させたい内容を記述
<?php endif; ?>

投稿ページの投稿IDが「1, 12, 23, 34のいずれか」の場合

<?php if( is_single( array( 1, 12, 23 ) ) ) : ?>
	投稿IDが「1, 12, 23のいずれか」のページだけに処理させたい内容を記述
<?php else : ?>
	投稿IDが「1, 12, 23のいずれか」以外のページに処理させたい内容を記述
<?php endif; ?>

固定ページ以外の場合

<?php if ( ! is_page() ) : ?>
	固定ページ以外のページに処理させたい内容を記述
<?php endif; ?>

最後に

ひととおりWordPress Codexで確認したり、実際に動作を試したりしましたが、きちんと理解できてなくておかしな記述のものがあったら教えて頂けると嬉しいです。
よく使うテンプレートタグは他にもいろいろあると思うので、これからも追加していきたいです。

5件のトラックバック

Top