Steamer Lane Studio技術備忘録WordPress

ウイジェットを設けてRSS/フィードを作る

wordpress ウイジェットを設けてRSS/フィードを作る
最終更新日: 2023年4月12日

シンプルテーマのinitialize、RSSなど要らないと思っていたがpinterestやtumblrに自動投稿するにはRSSが要るから一応RSS(フィード/feed)だけ作る。
function.php
//ウイジェット
function my_theme_widgets_init() {
register_sidebar( array(
'name' => 'Main Sidebar',
'id' => 'main-sidebar',
) );
}
add_action( 'widgets_init', 'my_theme_widgets_init' );

//5.7以前のウイジェットへ(5.8以降のは使い辛い、某有名テーマでも旧式に戻してるらしい)
function example_theme_support() {
remove_theme_support( ‘widgets-block-editor’ );
}
add_action( ‘after_setup_theme’, ‘example_theme_support’ );

//不要フィード削除 RSS2.0のみ出力な
remove_action(‘do_feed_rdf’, ‘do_feed_rdf’);
remove_action(‘do_feed_rss’, ‘do_feed_rss’);
//remove_action(‘do_feed_rss2’, ‘do_feed_rss2’);
remove_action(‘do_feed_atom’, ‘do_feed_atom’);

// フィードのlink要素を自動出力する
add_theme_support( ‘automatic-feed-links’ );

//RSSカテゴリ追加・除外
add_theme_support(‘automatic-feed-links’);
function rssfilter($query){
if ($query->is_feed) {
$query->set(‘cat’,’-16,-17,-18,-20,-28,-42,-53′);
}
return $query;
}
add_filter(‘pre_get_posts’,’rssfilter’);
ついでにコメントフィード、先ず要らないから削除。
//コメントフィード削除
add_filter( 'feed_links_show_comments_feed', function() { return false; } );

で、RSSを作ったらトップページだけでも(だけでいい)から
<link rel="alternate" type="application/rss+xml" title="RSS2.0" href="/feed" />
と書いておく。