- 更新日: 2015年3月3日
- WordPress
WordPressのis_feed()でフィードURLへのリクエストを判定
WordPress でフィードのURLへのリクエストかどうかを判定するには、is_feed() という関数を利用できる。以下の公式ドキュメントを参照。
Function Reference/is feed « WordPress Codex
条件分岐タグ – WordPress Codex 日本語版
この関数を知ったのは先日書いた、WordPress で404ページを作成する件がきっかけです。
WordPressで404ページを作成 | EasyRamble
functions.php で、WordPress の存在しないページヘのリクエスト時に 404 not found を返すようにしていたのですが、最初書いてたのは以下のコード。
functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function page_not_found_404() { if( is_month() || is_category() || is_home() || is_page() || is_search() || is_single() ) { return; } status_header(404); include(TEMPLATEPATH . '/404.php'); exit(); } add_action('template_redirect', 'page_not_found_404'); |
利用していないテンプレート以外へのリクエストでは、404 を返すようにフックを設定していたのだけど、is_feed() が抜けておりフィードのURLが404を返してしまっていました…。RSSリーダー見てて、自分のブログの記事が届かないな〜って気付いたのですけどね。
is_feed() を追加した改良版
ということで、is_feed() を if 文判定に追加して、フィードURLへのリクエストは404を返さないようにしました。
functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function page_not_found_404() { if( is_month() || is_category() || is_home() || is_page() || is_search() || is_single() || is_feed() ) { return; } status_header(404); include(TEMPLATEPATH . '/404.php'); exit(); } add_action('template_redirect', 'page_not_found_404'); |
これで、無事にフィードが配信されるようになりました。このブログのRSSフィードを購読されている方、ここ数日届いてなかったと思います。ご迷惑おかけして申し訳ありませんでしたm(_ _)m あと、修正前のPHPコードを参考にされた方がもしかしていらっしゃったら、is_feed() による判定を追加お願いします。
- WordPress の関連記事
- WordPressをTwitter Bootstrapでレスポンシブデザイン対応
- WordPressブログに更新日を表示
- WordPressにOGP設定・プラグインなしでFacebook/Twitter Cards対応
- WordPressでパンくずリスト・複数の親子カテゴリーを表示
- WordPressでプライベートな非公開ブログを運用
- BackWPupでエラー ERROR: Dropbox API: (35)
- ブログ・WordPress記事をFacebookに自動投稿するIFTTT設定
- RSS Graffitiが終了…代替にはIFTTTが使える
- WordPressで親カテゴリーに属する子カテゴリーの一覧を出力
- wp_list_categoriesでリンクなしで投稿数ゼロのカテゴリを表示 – WordPress
Leave Your Message!