WordPressテンプレートタグの個人的メモ.1
WordPressのテンプレートタグがたくさんありすぎて、頭が混乱して来ましたので、備忘録的によく使うであろうテンプレートタグをメモっておくことにします。
WordPressテンプレートタグは、同じカテゴリーの中の「A」という記事を参照する場合にしても、その記事を「どこから参照するのか」によって書き方が結構変わって来ます。
例えば「ニュース」というカテゴリーの記事一覧ページから「記事A」を参照する場合と、トップページから「ニュース」カテゴリーの「記事A」を参照する場合とでは、結構異なる書き方をしないといけないわけですね。
この「どこから参照するのか」を間違えてしまうと、WordPressテンプレートとしての、正しい働きをしてくれなくなります。
なので、本記事では「どこから参照するのか」を明確にさせつつテンプレート一覧を作成していきます。(マガジンに入れて連載にします。学習経過に応じて記事内容、マガジンは随時更新していきます。)
今回は、自分の居場所関係なく使用するテンプレートタグをまとめることにします。
要は、「どこから参照」とか関係ないテンプレートタグということですね。
※冒頭で散々「どこから参照」大事とか言っといて関係ないという。お許しください。
現在有効中のテーマディレクトリのURLを取得する
echo get_template_directory_uri();
→現在「有効化」しているテーマの、ディレクトリのURLを取得することができます。(ディレクトリとは、フォルダのことです)
例えば、”sample1”というテーマを使っている時、
<?php echo get_template_directory_uri(); ?>/assets/css/style.css
とすると、
”sample1/assets/css/style.css”となります。
「最初から手書きでそう書けばいいじゃん!」と思うかも知れませんが、そうしてしまうと、テーマを変更した時にcssが効かなくなります。
いちいち”〇〇/assets/css/style.css”ここの記述を変更しないといけなくなるわけですね。
テーマを変更した時に、自動的にパスが変わってくれるのが、このテンプレートタグを使う大きなメリットかなと思います。
サイトのタイトル、ディスクリプションを取得する
//タイトル取得
echo wp_get_document_title();
//ディスクリプション取得
bloginfo(‘description’);
→Wordpress管理画面の、「設定」>「一般」で設定したサイトのタイトル、ディスクリプションが出力されます。
ディスクリプションとは、そのサイトの説明文のことですね。
htmlで言うと、titleタグの中身に"wp_get_document_title();"、
metaタグのcontentに、"bloginfo('description');と書くといいかと思います。
ちなみに、"bloginfo('name')"と書くことでも、サイトのタイトルを取得できます。
ページの種類に応じたクラスを出力する
body_class();
→bodyタグの中に書くことで、そのページの種類に応じたクラス名を出力します。
例えば、固定ページであれば、"page"というクラスが自動でついたりします。cssを使う時に便利だったりするのかなと思います。
【条件分岐】トップページかどうかを判断する
is_front_page();
→表示しているページがトップページであった場合、TRUEを返す条件分岐タグです。
if文で条件分岐させる時に使用します。
表示しているページのタイトルを取得する
echo get_the_title();
→現在表示しているページの、タイトルを取得して出力します。
サイトのタイトルではなく、その投稿、あるいは固定ページ固有のタイトルということですね。
h2タグなどで囲んで使用します。
WordPressループで投稿等を取得する
have_posts()
→処理すべき記事が残っているかどうかを判断します。
the_post()
→while内で、処理すべき記事を一つセットします。
この値を見て、"have_posts()"は処理すべき記事が残っているかどうかを判断することができます。
the_content()
→記事を出力します。
この一連の流れを処理すべき記事がなくなるまで繰り返すのがWorsPressループです。
いくつか書いてきましたが、かなり基礎的な部分だけになってしまいました、、
次は具体的なシチュエーション(例えばカテゴリーページで記事一覧を取得等)で必要なテンプレートタグをまとめることにします。
以上。
この記事が気に入ったらサポートをしてみませんか?