この記事は最後に更新してから1年以上経過しています。

4.4では投稿ページも専用テンプレートが適用できる

説明

従来、特定の固定ページには専用テンプレートを適用できるのですが、投稿ページに適用させるためにはアクションやフィルターを利用する必要がありました。4.4では特定の投稿ページに標準で専用テンプレートを適用できるようになりそうです。

beta2、beta3がさくさく公開され、ソースコードを追い切れていないわけです。そんな中でふと見つけたのが、今回紹介する内容です。

適切なテンプレートファイルを用意してテンプレート内の振り分け処理を無くす」で紹介しているようにWordPressのテーマではさまざまなテンプレートが利用できます。これまでのテーマでは、「page-{スラッグ(投稿名)}.php」や「page-{投稿ID}.php」という名前でテンプレートを用意しておけば特定の固定ページに専用のテンプレートを適用できましたが、これはあくまでも固定ページのみ。投稿ページで同じようなことを実現するためには、template_redirectアクションやtemplate_includeフィルターなどを利用する必要がありました。

4.4では、投稿ページ向けのテンプレートの適用順が変更されています。

優先度テンプレートファイル名
single-{投稿タイプ名}-{スラッグ(投稿名)}.php [4.4.0]
single-{投稿タイプ名}.php
single.php

たとえば標準の投稿ページで、スラッグが'hello'の場合、single-post-helllo.phpというファイル名のテンプレートを用意しておけばいいわけです。固定ページのように投稿IDでの指定はできないのですが、この機能を利用すれば、特定の投稿ページのみ異なるデザインを適用させるのが容易になります。ちょっとしたことかもしれませんが、実用性は高い変更点ではないでしょうか。


最終更新 : 2018年05月27日 10:45


お勧め

wp_revisions_to_keep(2023年4月4日 更新)

int wp_revisions_to_keep( WP_Post $post )
投稿情報のリビジョン数を取得する。

get_month_link(2012年2月2日 更新)

string get_month_link( mixed $year, mixed $month )
月アーカイブのURLを取得する。

get_site_icon_url(2020年4月2日 更新)

string get_site_icon_url( [ int $size = 512 [ , string $url = '' [ , int $blog_id = 0 ] ] ] )
サイトアイコンのURLを取得する。

is_singular(2026年8月20日 更新)

bool is_singular( [ mixed $post_types = '' ] )
要求されているページが、投稿またはページか調べる。

wp_strip_all_tags(2018年5月27日 更新)

string wp_strip_all_tags( string $string [ , bool $remove_breaks = false ] )
文字列からHTMLタグを取り除く。