投稿ページのカテゴリ別切り替え表示を functions.php で行う
投稿ページの表示をカテゴリ別に切り替えるとき、include / TEMPLATEPATH を使っていたが、5年も前から非推奨タグになっていたとは知らなかった…。
というわけで、functions.php にコードを書き足す。
用意するファイル
- functions.php
- single.php
- 切り替え用の single-xxx.php ※xxx はカテゴリ名など任意に
functions.php
- single.php で通常の投稿記事を表示させ、single-xxx.php で特定カテゴリを含む記事を表示させる
- 条件分岐と has_category() 関数でスラッグ名を判定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function single_branch($single_template) { $new_template = $single_template; $post = get_queried_object(); if (has_category('monthly-archive', $post)) { $single_sr_template = locate_template('single-ranking.php'); if(!empty ($single_sr_template)) $new_template = $single_sr_template; } else if (has_category('yearly-archive', $post)) { $single_sry_template = locate_template('single-ranking-year.php'); if(!empty ($single_sry_template)) $new_template = $single_sry_template; } return $new_template; } add_filter('single_template', 'single_branch'); |
コメントを投稿する