カスタム投稿タイプを追加する の続きです。カスタム投稿タイプで投稿した記事用のテンプレートを作成します。
single.phpは他のテンプレートと異なり、single-スラッグ.phpとしても個別のテンプレートにはならないので、個別でカスタマイズしたい場合は、カスタム投稿タイプにするのが便利です。カスタム投稿タイプでは、single-投稿タイプ名(news).phpに出来ます。
例では、「お知らせ」news としています。この状態でダミーで記事を少し作りました。
※ この例では、WP Bootstrap Starterを使用しています。
記事一覧テンプレート
カスタム投稿記事一覧のテンプレートの読み込み順は、
- archive-投稿タイプ名(news).php
- archive.php
- index.php
archiveを子テーマにコピーして、archive-news.phpにリネームします。
個別ページテンプレート
個々のカスタム投稿記事のテンプレートの読み込み順は、
- single-投稿タイプ名(news).php
- single.php
- singular.php
- index.php
つまり、single-投稿タイプ名(news).phpを作っていない場合は、他の記事と共通のsingle.phpを使用します。
方法その1
single.phpを子テーマにコピーして、single-news.phpにリネーム。template-parts/contentsを子テーマにコピーして、contents-news.phpにリネーム。
single-news.phpを開き、読み込むcontentテンプレートをcontents-news.phpに修正する。
get_template_part( 'template-parts/content', get_post_format() );
を書き換える
get_template_part( 'template-parts/content-news', get_post_format()
);
方法その2
single.php内で、カスタム投稿の記事であればcontent-news.phpを使い、そうでなければcontent.phpを使う様に振り分けるます。
single.phpを開き、get_template_part( ‘template-parts/content’, get_post_format() ); を削除し、その代わりに下記のコードを加えます。初心者に管理しやすいのがこの方法ではないかと思います。
if (is_singular(array('news'))):
get_template_part( 'template-parts/content-news', get_post_format() );
else:
get_template_part( 'template-parts/content', get_post_format() );
endif;
後は、それぞれのテンプレートをカスタマイズして下さい。
コメント ※ハンドルネームでお願いします