RSSフィードのタイトルをカスタムフィールドで設定したtitleに変更

RSSフィードのタイトルをカスタムフィールドで設定したtitleに変更

記事タイトル、description、keywords は、 All in One SEO Pack 、HeadSpace2 などのプラグイン、もしくはカスタムフィールドで作成したものに差し替えることができます。

ブログで扱う内容にもよるんでしょうが、例えば通常のタイトルは 「AIMP」 、変更したタイトルは 「AIMP – ASIO や WASAPI に対応した高音質で高機能なオーディオプレイヤー」 とした場合、検索エンジンには変更後のタイトルが反映されます。

サイト内で扱うには短く設定した通常のタイトルの方が扱いやすいのですが、 RSS で購読しているユーザーや相互リンク先の RSS フィードにはこの短い方の 「AIMP」 しか表示されません。 これだと何の記事だかわけわかめ。


Sponsored Link

記事のタイトルってある意味一番重要。 でも RSS フィードのタイトルに変更した長い方のタイトルは反映されないんですよね。

最初の設計でこの短いタイトル部分を h2 か h3 、もしくは strong にしとけば良かったんでしょうが、今更後の祭り :ase:

RSS フィードのタイトルは wp-includes 内の feed.php で制御してるようで、RSS フィードの内容を変更するには functions.php にやりたいことを記述する必要があります。

今回やりたいことは RSS フィールドに追記するのではなく、RSS フィードのタイトルをカスタムフィールドで作成した meta 「title」 と入れ替えるカスタマイズ。

以下のコードを functions.php に記述。

//RSSタイトル変更
add_filter('the_title_rss', 'custom_feed_title');
function custom_feed_title($title) {
    $headline = get_post_meta(get_the_id(), 'title', true);
    if (!empty($headline))
        return $headline;
    return $title;
}

これで RSS フィードのタイトルがカスタムフィールドで設定したタイトルと入れ替わります。

カスタムフィールドのタイトルがない場合の動作はやってませんので、それについてはあしからず :mrgreen:

検索に掛けると、RSS フィードにカスタムフィールドで作成した画像や一文を追加するカスタマイズはそこそこヒットしたのですが、RSS フィードのタイトルをカスタムフィールドで設定したタイトルに変更してしまうハックは日本のサイトではヒットしませんでした。

自力で変更できる能力がないので、ひたすら検索した結果以下の海外掲示板で 「ズバリ!!」 の変更法を発見。

2日ぐらいあれこれキーワードを変えて検索し、やっと希望に沿うカスタマイズを見つけました。 掲示板には書き込んでないけど感謝感謝です :omiso:

参考サイト

WordPress Answers
How can I modify RSS item titles to be either the title or a custom meta field?
Sponsored Link

コメントを残す