超高速WordPress実行環境 KUSANAGI稼働中
本サイト処理速度
language

    WordPressのヘッダーにフィードのlink要素を自動出力する条件

    WordPress

    WordPressには、RSSなどのフィードのURLをhead要素に自動的に出力してくれる機能がありますが、 @glatyou さんのブログ( http://webcre8.jp/ )でhead要素内にフィードのlink要素が出ていないということだったので、その原因を探ってみたのでした。

    フィードURL出力サンプル

    	
    

    そもそも、head要素のテンプレート(大抵、header.php)には、フィードのURLに関する記述は一切ありません。
    では、どのような仕組みで出力しているかというと、バージョンによって多少異なりますが、下記のようになっています。

    WordPress 2.8, 2.9の場合

    1. 利用中のテーマの functions.php に、automatic_feed_links(); が記述されていれば、wp_head にて feed_links 関数が実行されるようフックの登録が行われる。
    2. wp_headフックにて feed_links 関数が実行され、フィードURLのlink要素を出力

    WordPress 3.0, 3.1の場合
    (正式リリースされていませんが、3.2もこの方式になりそうです)

    1. wp-includes/default-filters.php が読み込まれた段階で、wp_head にて feed_links 関数が実行されるようフックの登録が行われる。
    2. wp_headフックにて feed_links 関数が実行され、利用中のテーマが automatic-feed-links をサポートしていれば、フィードURLのlink要素を出力

    具体的に何をチェックすべきかについては、下記3点になろうかと思います。(他にもファイルが壊れているなどの可能性もあるにはありますが。)

    WordPress 2.8, 2.9の場合

    1. テンプレートファイルに wp_head(); が記述されているか
    2. テーマのfunctions.php に automatic_feed_links(); の記述があるか
    3. 利用しているプラグインが、feed_links のフックを削除したりしていないか

    WordPress 3.0, 3.1の場合

    1. テンプレートファイルに wp_head(); が記述されているか
    2. テーマのfunctions.php に add_theme_support( ‘automatic-feed-links’ ); の記述があるか
    3. 利用しているプラグインが、feed_links のフックを削除したりしていないか

    今回の場合は、自作のテーマにfunctions.php に、

    	add_theme_support( 'automatic-feed-links' );
    

    の記述がなかったことが原因でした。

    自分で1からテーマの作成を行う場合は、憶えておくと良いかと思います。

    Webサイトのお悩み解決!個別相談会

    WordPress等CMSで構築されたサイトを運用中(もしくはご予定)で、様々な課題をお抱えの企業Webサイトご担当者様、「技術的にはよくわからないけれどマーケティング的にも改善をしたい」等とお考えのマーケティングご担当者様、「お客様のためにWebサイトについて聞きたい」「クラウドを導入したい」等お考えのWeb制作会社様などを対象に「【法人向け】Webサイトのお悩み解決!個別相談会」を開催しています。

    お客様の課題を解決するソリューション、
    条件に沿ったベネフィットあるご提案を提供いたします。

    ご相談・お問い合わせフォーム