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

IT

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

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

YouTube

スポンサーリンク

336×280




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の末尾に以下を追加する必要があります。

確認

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

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

本日のおすすめ商品

WordPressのやさしい教科書

初心者におすすめ!

よくわかるPHPの教科書

初心者におすすめその2!!

日清 カップヌードル シーフードヌードル

誰でもおすすめ!!!笑

終わりに

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

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

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , ,

blogenist

Author: blogenist

関連記事

YouTube

お名前.comサイドバー