-
ID:n48wfm さんの質問

wordpressでカテゴリが「topics」になっているのに、「single-topics.php」に記述しているものが「topics」に投稿されている個別投稿ページに反映されません。何か手順が不足しているのでしょうか?
◼︎追記
管理画面のカテゴリから各カテゴリのところに表示されている「表示」というリンクの上にマウスオーバーしてみたら、パスが「ドメイン.com/topics/%post_id%.php/topics」とおかしなことになっておりました。これが原因っぽい気がしますが、どこをどうすれば良いのでしょうか?

みんなの回答 2 件

ID:fHo1ON さんの回答

それ、カテゴリがtopicsじゃなくて、投稿のスラッグがtopicsだったときに適用されるやつですよ。

ID:/rp0Nm

いや、single-xxxはカスタム投稿では?
single-(記事のスラッグ)なんて使い方できるの??
固定ページならpage-(スラッグ)だけど。
ttps://wpdocs.osdn.jp/テンプレート階層#.E5.80.8B.E5.88.A5.E6.8A.95.E7.A8.BF.E8.A1.A8.E7.A4.BA
まずはここ見ましょうぜ。

>「single-topics.php」に記述しているものが「topics」に投稿されている個別投稿ページに反映されません。
topicsという投稿タイプの時に呼ばれるテンプレートだからです。
なにがやりたいかと、コーデックスをもう1度確認してみてください。
テンプレート作っただけでurlがおかしくなるのかなー。
なんかパーマリンク変更系のプラグインでも入ってるのでは??

ID:H2EKW8 さんの回答

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’ ) に変えれば同じ動作になります。呼び出されるファイル名は上記と同じです。
シングル・ページにも、カテゴリー・ページにも、カテゴリー選別の単一ページ出力テンプレートは有りませんので、条件分岐は必須と思われます。
なお、パーマリンクについては、アドミン・メニュー => 設定 => パーマリンクの内容を提示して頂かないと分かりません。

ID:H2EKW8

間違っていましたw:カスタム投稿タイプを指定すれば、直接、想定している single-topics.php で呼び出せます。get_post_format~ は間違いです。

最終更新日:2016-05-14 (2,633 views)

関連するトピックス

ページ上部に戻る