RSSにカスタムフィールドの値を追加したい
-
いつもお世話になっております。
カスタムフィールドで設定した値をRSSフィードに加えたいのですが、やり方がわかりません。
どなたかご存じであれば教えて頂けないでしょうか。ちなみに以下投稿は見つけたのですが、やってみたところうまく動きませんでした。。
→ カスタムフィールドの内容をRSS配信できますか?ここ数日調べたところ、出来たのは(出来たのかわかりませんが(汗)
1. functions.php(テーマ配下)に以下を記述し、theme配下にカスタマイズ可能なphpファイルを用意する// アクションフック リムーブ remove_filter('do_feed_rdf', 'do_feed_rdf', 10); remove_filter('do_feed_rss', 'do_feed_rss', 10); remove_filter('do_feed_rss2', 'do_feed_rss2', 10); remove_filter('do_feed_atom', 'do_feed_atom', 10); // アクションフック 追加 function custom_feed_rdf() { $template_file = '/feed-rdf.php'; $template_file = ( file_exists( get_template_directory() . $template_file ) ? get_template_directory() : ABSPATH . WPINC ) . $template_file; load_template( $template_file ); } add_action('do_feed_rdf', 'custom_feed_rdf', 10, 1); function custom_feed_rss() { $template_file = '/feed-rss.php'; $template_file = ( file_exists( get_template_directory() . $template_file ) ? get_template_directory() : ABSPATH . WPINC ) . $template_file; load_template( $template_file ); } add_action('do_feed_rss', 'custom_feed_rss', 10, 1); function custom_feed_rss2( $for_comments ) { $template_file = '/feed-rss2' . ( $for_comments ? '-comments' : '' ) . '.php'; $template_file = ( file_exists( get_template_directory() . $template_file ) ? get_template_directory() : ABSPATH . WPINC ) . $template_file; load_template( $template_file ); } add_action('do_feed_rss2', 'custom_feed_rss2', 10, 1); function custom_feed_atom( $for_comments ) { $template_file = '/feed-atom' . ( $for_comments ? '-comments' : '' ) . '.php'; $template_file = ( file_exists( get_template_directory() . $template_file ) ? get_template_directory() : ABSPATH . WPINC ) . $template_file; load_template( $template_file ); } add_action('do_feed_atom', 'custom_feed_atom', 10, 1);
2.先述の投稿にあった通り、同functions.php内にカスタムフィールドの情報を取得する新しいフィルターを記述
function my_content_feed($content, $feed_type){ $meta1 = get_post_meta($post->ID, 'img_thumb', true); $meta2 = get_post_meta($post->ID, "title", $single = true); $meta3 = get_post_meta($post->ID, 'lead', $single = true); return $content . $meta1 . $meta2 . $meta3; } add_filter('the_content_feed', 'my_content_feed', 10, 2); function my_excerpt_rss($output){ $meta1 = get_post_meta($post->ID, 'img_thumb', true); $meta2 = get_post_meta($post->ID, "title", $single = true); $meta3 = get_post_meta($post->ID, 'lead', $single = true); return $output . $meta1 . $meta2 . $meta3; } add_filter('the_excerpt_rss', 'my_excerpt_rss');
自分の認識ではこれによって
・descriptionの部分で呼び出された関数「the_excerpt_rss」が「my_excerpt_rss」にフック?されて呼び出され、上記$meta情報を取得し戻す(return)
と認識しているのですが・・うまくいってないです。
もう少し言えば、テーマ配下のrss関連ファイルを作り制御できたはずなのですが、修正しても修正内容が上手く反映されず・・かといってちょっと変えるとエラーが出たり。。
wp-include配下の本体のrssファイルとどっちも見ているのか。。と不安です。
ご教授の程宜しくお願い致します。
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「RSSにカスタムフィールドの値を追加したい」には新たに返信することはできません。