[wordpress]カスタム投稿タイプのテンプレート

カスタム投稿タイプ

カスタム投稿タイプを追加する  の続きです。カスタム投稿タイプで投稿した記事用のテンプレートを作成します。

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-news.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; 

後は、それぞれのテンプレートをカスタマイズして下さい。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください