自分のWordPress(WP)のRSSに通常の投稿機能にはカテゴリが表示されるものの、カスタム投稿ではどうも表示されない。
自分にとってはカスタム投稿の情報を外部から取得する際に内容を分類してさらにその区分が表示ができるようにしたかったのを以下の流れで解決することになった。
執筆時のWPのバージョンは5.6.2–ja
・RSSファイルを複製し自分の子テーマ内に配置
・function.phpに元のファイルを読み込ませずに子テーマにあるファイルを読み込むように記述する。
・RSSファイルの編集
→カスタム投稿でカテゴリー表示
なので今回カスタム投稿の設定は特に変えていない。
RSSファイルを複製し自分の子テーマ内に配置
/wp-includes/feed-rss2.php
を複製し子テーマへ移動。
function.php編集
function.phpに以下を追記。
// Feed編集childthemeファイル参照指示
remove_filter('do_feed_rss2', 'do_feed_rss2', 10);
function custom_feed_rss2( $for_comments ) {
$template_file = '/feed-rss2' . ( $for_comments ? '-comments' : '' ) . '.php';
$template_file = ( file_exists( get_stylesheet_directory() . $template_file ) ? get_stylesheet_directory() : ABSPATH . WPINC ) . $template_file;
load_template( $template_file );
}
add_action('do_feed_rss2', 'custom_feed_rss2', 10, 1);
参考サイト:【WordPress】カスタムフィールドの値をRSSフィードに出力して他のサイトで読み込む方法
RSSファイル編集
子テーマにあるfeed-rss2.phpでに囲まれているうち
カテゴリが表示されているの下あたりを編集し表示させることにする。
<!--?php the_category_rss( 'rss2' ); ?-->
(あせった。さくっとメモしたかっただけがphpのコードがWP上やとみせれないのかと、ビジュアルエディターで書いてから編集すると良いみたい)
上記の部分ではカスタム投稿のカテゴリーだけは表示されない。同じ悩みを持ってる人いないか探したもののピンポイントの情報では見つけられず。
RSSではないもののカスタム投稿のタクソノミー表示をさせることについては記述があり、それを試した。
通常の投稿で使える the_category(); はカスタム投稿では使えないそうで、
参照サイト:【WordPress】カスタム投稿タイプ使用時のカスタムタクソノミーを表示する方法。
タクソノミーのタームを取得する方法
参照サイト:single-***.phpで所属するカスタム分類名(タームタイトル)を表示
参照サイト:WordPress タームの取得と表示方法
参照サイト:ワードプレスでカテゴリー・タグを取得・出力する
タクソノミーが取得できても、タクソノミー名など情報取得に必要のない文字列もあるのでターム名だけ取得したい。
取得の際は中の文字だけ抜き取る準備はすでにできていたのと、シンプルなコードだったので以下を採用し、わかりやすいタグをつけて追記。
<hogehoge><?php echo get_the_term_list($post->ID, 'タクソノミー(カテゴリー)名'); ?></hogehoge>
表示ができた。
RSSを編集できると他サイトやアプリとの連携の際に柔軟性や可用性が増すと思ったので作業メモ。