素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2018年5月18日
最終更新日:

【WordPressのRSS】StaticPressでFeedをhtml形式では無くxml形式で出力する方法

YouTubeも見てね♪

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,430 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/04/03 21:42:16時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

レッドブル エナジードリンク 250ml×24本

created by Rinker
Red Bull(レッドブル)
¥4,000 (2024/04/03 21:42:12時点 Amazon調べ-詳細)

翼を授けよう!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥14,935 (2024/04/03 21:42:10時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

Feedの必要性

WordPressはRSS標準搭載

WordPressでサイトを生成すると、標準で以下のようなURLが用意されます。

Point
  • http://example.com/?feed=rss
  • http://example.com/?feed=rss2
  • http://example.com/?feed=rdf
  • http://example.com/?feed=atom

パーマリンクをカスタムしている場合は以下のURLとなります。

Point
  • http://example.com/feed/
  • http://example.com/feed/rss/
  • http://example.com/feed/rss2/
  • http://example.com/feed/rdf/
  • http://example.com/feed/atom/

アクセスするとこんな感じです。

StaticPressを利用した際の問題

HTMLファイルになってしまう

StaticPressを使用して、上記のFeed情報を出力するとHTMLファイルとして出力されてしまいます。
これはURLがfeed/となっているため、デフォルトでindex.htmlに出力されてしまっています。

解決方法

こちらを解決するには、StaticPressS3にてS3バケットに転送する際にファイルの拡張子をhtmlからxmlに変更するようにします。
そのためにclass-S3_helper.php62行目辺りを以下のように修正してください。
※{}内の部分は置き換えてください

2019年6月8日追記 以前の方法だと後に行われたfeedページで上書きされていたのでトップのフィードのみ対象にするように修正

StaticPressプラグインの全容が分かればもっとスマートにいけそうですが、今回はそこまではやりません。
気になる方はやってみてください。笑

また、mime_typetext/htmlではなくapplication/rss+xml; charset=UTF-8に変える必要があるので、class-S3_helper.php194行目辺りを以下のように修正してください。
※charset=UTF-8を入れないと日本語が文字化けしてしまいます

確認

では、実際に再構築して確認してみましょう。

正常に、xml形式で転送されるようになりましたね♪

FeedのURLが管理サーバーのものになる

出力されたFeedの内容をみると、一部のURLがWordPressを載せているサーバーのURLになったままの部分があると思います。

このままだとうまくFeedが働きません。

対応方法

こちらを解決するには、StaticPressのplugin.phpの末尾に以下を追加する必要があります。

確認

では、実際に再構築して確認してみましょう。

こちらも正常に運用しているドメインに置き換わるようになりましたね♪

終わりに

Feed情報は他のサイトに更新情報を伝える上では、非常に貴重な情報です。

使わないとしても、いつでも使える状態にしておくと良いでしょう♪

CATEGORIES & TAGS

IT