ページの先頭へ

WordPressのRSSフィードのタイトルを条件判定して変更した話

C-Notes.

WordPressのRSSフィードのタイトルを条件判定して変更した話

2020.05.27 (Wed) 0

こんばんは!

めちゃくちゃ今更なHTTPS対応をしていて、RSSリンクの書き換えもしました。
その際、FeedlyでこのブログのRSSのタイトルを見ると、こんな感じになっていることに気が付きました。

Feedlyで見たときのタイトル
RSSのxmlの中身

つまりこれが、このブログのRSSフィードタイトルです。
blog - 村田千紗 ポートフォリオ

なぜこうなっているかはすぐに察しがつきました。
WordPressでカテゴリー名に設定している blog と、WordPressの設定でサイトタイトルに指定している 村田千紗 ポートフォリオ が自動的にがっちゃんこされているようです。

このブログはあくまでも C-Notes. というタイトルのブログとしてポートフォリオサイトからは少し分離させているので(自分の気持ち的に……)、
このRSSフィードのタイトルもちゃんと C-Notes. にしたいなあ〜!という気持ちが湧いてきました。

WordPressでのRSSフィードタイトルに関する処理の場所 & 処理の変え方

ただ、自分はWordPressで自動生成されるカテゴリーごとのRSSフィードを使っております。どうやって編集したらいいんだろう!?

調べてみたところ、以下のことがわかりました。
(一部すでに知っていることもありますが、読む方がわかりやすいように細かく書きます)

  • RSSのタイトル設定は、 wp-includes フォルダに含まれている feed.phpget_wp_title_rss() で行なっている(公式ドキュメント
    • RSSのタイトルは、ページタイトルがベースになっている
      • ページタイトルは wp-includes に含まれている general-template.phpwp_get_document_title() で生成されている(公式ドキュメント
  • wp-includes はWordPressのコアファイルなので、基本はいじるべきではない
    • なぜならWordPress本体のアップデートで上書き修正されてしまうから
で、なにをすれば変えれたのか

というわけで、theme 配下の functions.php に以下を追加したらいけました!
(テーマごとに変えたいよ!という人は、さらに下位のテーマフォルダの中の functions.php でも大丈夫です)

add_filter('get_wp_title_rss', 'rss_feed_title_change', 1, 2); // RSS タイトル取得処理時にrss_feed_title_changeを実行
function rss_feed_title_change($title, $separater) { // rss_feed_title_changeを実行
  if ( strpos($title,'blog') !== false ) { // もしタイトルに「blog」が含まれていたら
    $title = 'C-Notes.'; // タイトルを「C-Notes.」に置き換える
  }
  return $title; //置き換えた内容を返す
}
RSSフィードの中身
titleが変わっている

ただ、自分のケースだとそもそも自動生成されるページタイトルも変えちゃってもいいなーと思ったので、最終的には上記のコードではなく、以下のコードで対応しました。

add_filter('document_title_parts', 'title_change', 1, 1); // ページタイトル取得処理時にtitle_changeを実行
function title_change($title) { // title_changeを実行
  if ( $title['title'] == 'blog' ) { // もしカテゴリーが'blog'だったら
    $title['title'] = 'C-Notes.'; // 'C-Notes.'に置き換えておく
    $title['site'] = ''; //サイトネームは空にしておく (ハイフンによる接続も行われなくなる)
  }
  return $title; //置き換えた内容を返す
}
コードに強くなった(気がする)

Morn(個人で作っているアプリ)の開発でSwiftを触っています。
仕事もiOSアプリのデザインをやっているのですが、できそうな超かんたんレベルのときはプルリクを出させていただいています。そのおかげでコードに耐性がついたのか、PHPもだいぶわかるようになっていました。

今までも自力でPHPを書く!という経験は何度かありましたが、
WordPressについて、ここまできちんと自分の中での理解度が深まったことはないです。笑
自分である程度読めるようになったからだな〜と思います。

ちゃんと成長しているようです

以前 前/次の投稿リンクをいじって記事にしていた のですが、今思うとこの記事、直接コアファイルいじってるのでよくないですね。笑
過去の私もきちんと荒業と認識していたみたいですが、他の方法がわからなかったようです。
今の自分だったらフック使って対応できるんじゃないかなあ(この対応すぐに必要ないので、また時間があるときにやろうかなと思います)

そして先述の記事で、「WordPressをアップデートしていきたい人はこの方法やめましょう」とか書いていますが、アップデートはちゃんとするのがおすすめです。
(そして案の定?私自身この対応やったことをすっかり忘れ普通にWordPressアップデートしまい、今は変更なかったことになっているという……)

なぜならWordPressはちょいちょい脆弱性対応をしているから!
それをしないとえらいことになる……かもしれません。
私自身、身を持って経験しております……。
そのへんの話:サイトが改ざんされてしまった話

当時はわからなかったことがわかるようになっていたので、多少なりとも私も成長できているのだな〜と実感したできごとでした。

0

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です