wordpressでカテゴリが「topics」になっているのに、「single-topics.php」に記述しているものが「topics」に投稿されている個別投稿ページに反映されません。何か手順が不足しているのでしょうか?
◼︎追記
管理画面のカテゴリから各カテゴリのところに表示されている「表示」というリンクの上にマウスオーバーしてみたら、パスが「ドメイン.com/topics/%post_id%.php/topics」とおかしなことになっておりました。これが原因っぽい気がしますが、どこをどうすれば良いのでしょうか?
みんなの回答 2 件
それ、カテゴリがtopicsじゃなくて、投稿のスラッグがtopicsだったときに適用されるやつですよ。
single.php のファイル名オプション( single-[...].php )には、投稿タイプしか指定出来ません。WP は、内部の様々な情報も多く「投稿タイプ」で扱っており( Default: post, page, attachment, revision, nav_menu_item )、ここで単独記事は指定出来ません。あくまで「指定投稿タイプを使用した投稿の表示用」のテンプレートです(カスタム投稿タイプは指定出来ます。)。
カテゴリー用のテンプレートを適用したければ、get_template_part が利用出来ます。index.php and/or single.php (他でも) の中で、カテゴリー条件分岐を付け、get_template_part() で、例えば content-[ category ].php (想定されている single-topics.php )を作っておき、呼び出せば可能です。
<?php if ( in_category( ’topics’ ) ) : ?>
/* カテゴリー "topics" の時の処理 */
~
<?php get_template_part( ’content’, ’topics’ ); ?>
~
<?php else : ?>
/* カテゴリー "topics" 以外の時の処理 */
<?php ?>
もしくは、カテゴリーに拘らず、Custom Post Type UI 等でカスタム投稿タイプ "topics" を作れば、上記コードのテンプレート呼び出しを get_post_format( ’content’, ’topics’ ) に変えれば同じ動作になります。呼び出されるファイル名は上記と同じです。
シングル・ページにも、カテゴリー・ページにも、カテゴリー選別の単一ページ出力テンプレートは有りませんので、条件分岐は必須と思われます。
なお、パーマリンクについては、アドミン・メニュー => 設定 => パーマリンクの内容を提示して頂かないと分かりません。
関連するトピックス