DESIGN
WORDPRESSでカスタム投稿をRSSに反映させる
- ARTICLE - No.3
- issue-2015.4.1
- 4,174 views
Posted by Keisuke Aratsu
POP1280
このブログを作り始めた当初、RSSの事はそこまで深く考えていなかったし記事書いたら勝手に反映されるくらいにしか思ってませんでした。
けど実際作ってみると全然そんな事なくて、記事の反映がされなさ過ぎて焦りましたが調べたら解決したのでめでたいって感じです。
結局は自分がカスタム投稿を使ってしまった事に原因があった訳ですが。
原因
上にも書いたようにカスタム投稿を使ってしまった事が原因。
自動でRSSを取得してくれるのはWORDPRESSにデフォルトで準備されている「投稿」のみとのこと。
なのでカスタム投稿の記事が取得されないのは当たり前の事でした。
解決方法
これについては色んな方が記事にしてくれているので案外調べるのには困らない。
ただ自分がカスタム投稿の記事は取得できないという結論に至るまでに時間がかかった。
そんなこんなで調べた結果、僕は以下のソースで解決しました。functions.phpに書いて下さい。
function mysite_feed_request($vars) { if ( isset($vars['feed']) && !isset($vars['post_type']) ){ $vars['post_type'] = array( 'post', ‘hogehoge’, ‘hogehoge’ ); } return $vars; } add_filter( 'request', 'mysite_feed_request' );
5,6行目のhogehogeの箇所に任意のカスタム投稿タイプの名前をいれてあげるといいです。
参考にさせてもらった記事はこちら。
76bit cafe
これだけで解決ではない
上記のソースを書いて万事解決かといえばそうではない。
すぐに効果を確認したいのならもう1つやっておいたほうが良い事がある。
wordpress/wp-includes/feed.phpの中のソース内630行目付近に、どの周期でRSSを取得するか記述している箇所があるのでそこを確認してみるとデフォルトだと12時間に1度の取得になっていると思う。
これではさっき追加したソースの効果をすぐに確認する事はできないので30分に1度とかに変えてみましょう。それでちょっと放置して効果確認できたら自分の塩梅のいい間隔とかデフォルトに戻してしまえばいいと思います。
僕はこの方法で無事取得する事ができました。
最初はどうしようかとオロオロしたけど無事解決したのでめでたく記事にしました。