[WP]通常投稿とカスタム投稿タイプ、また複数の投稿タイプ別にテーマファイルを分離する方法

WordPress
スポンサーリンク

WordPressの場合、テーマファイル内で「カテゴリ」や「固定ページ」、「カスタム投稿タイプ」で条件分岐してデザインレイアウトを変更することも可能ですが、カスタム投稿タイプが複数有って、しかもそれぞれ全く異なったデザインが必要になる時は、1つのテーマファイル内で振分処理を行うのは非常に辛い場合がありますす。

WordPressでは、通常の投稿記事とカスタム投稿タイプの記事とでそれぞれデザインレイアウトを分けたい場合はもちろん、カスタム投稿タイプの中でも投稿タイプごとにデザインレイアウトが異なる場合であっても、テーマファイルを個々に持つことが可能です。

archive.php を分離する

カスタム投稿タイプ用にarchive.phpを用意する場合は、archive.phpをコピーして、以下のようにテーマファイル名を変更します。


カスタム投稿タイプ毎にarchive.phpを分離できます。



single.php を分離する

カスタム投稿タイプ用にsingle.phpを用意する場合は、(1)同様に記事詳細ページに当たる single.phpをコピーして、以下のようにテーマファイル名を変更します。


(1)同様、カスタム投稿タイプ毎にsingle.phpを分離できます。



ヘッダー、サイドバー、フッターファイルを分離する

header.phpやsidebar.php、footer.phpなどのテンプレートファイルも分離可能です。

通常、index.phpなどのテーマファイルであれば、ヘッダーファイルであれば <?php get_header();?>、フッターファイルであれば<?php get_footer();?>を利用しますが、get_template_part()を利用することで別のヘッダーファイルやフッターファイルを引っ張ってくることができます。

header-{カスタム投稿タイプ名}.phpfooter-{カスタム投稿タイプ名}.phpという名前のファイルをあらかじめ用意し、archive-{カスタム投稿タイプ名}.phpやsingle-{カスタム投稿タイプ名}.phpのテーマファイル内で以下のように記述します。



search.php を分離する

通常の記事とカスタム投稿タイプの記事でデザインレイアウトが異なる場合、同じsearch.phpファイルで検索結果を出力するとデザインが崩れて困ってしまうことがあります。

そのような場合にsearch.phpとsearch-{カスタム投稿タイプ名}.phpとで検索結果ページのレイアウトを変更することが可能です。

まずはfuntions.phpに以下のコードを追記します。
[p


あとは投稿タイプ別にsearch-{カスタム投稿タイプ名}.phpの名前で用意し、サーバにアップします。

これは、通常の投稿記事とカスタム投稿タイプの検索結果を変えられるだけでなく、カスタム投稿タイプの中でも {カスタム投稿タイプA} と {カスタム投稿タイプB} とで検索結果のレイアウトを変更できるというメリットもあります。

参考サイト
WordPressの検索結果で投稿タイプごとに違うテンプレートファイルを使う

コメント

タイトルとURLをコピーしました