【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
あれ、FeedがS3に転送されない・・・
Feedをいい感じに出す事は出来てる
StaticPressとStaticPressS3を利用してサイトを運営している場合、RSSなどのFeedを利用したいケースがあると思います。
その場合のStaticPress(S3)経由でおかしくなってしまう部分については、以下の記事で対応方法をご紹介しました。
Feedへのlinkタグ消えてしまう問題
しかし、head
タグ内にlink
タグでFeedへのURLを追加してS3にファイル転送しようとすると、StaticPressで吐き出されたファイル内から追加したはずのlinkタグが消えてしまいます。。。
1 2 3 |
<title>【WordpressのRSS】StaticPressでFeedをhtml形式では無くxml形式で出力する方法 | Blogenist – ブロゲニスト</title> <link rel="alternate" type="application/rss+xml" title="Blogenist - ブロゲニスト RSS Feed" href="http://{WordpressURL}/feed"> <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> |
1 2 |
<title>【WordpressのRSS】StaticPressでFeedをhtml形式では無くxml形式で出力する方法 | Blogenist – ブロゲニスト</title> <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> |
消えてる!!!
なんでやねん・・・orz
そして、StaticPressはクローリングしたHTMLのリンクをどんどん辿ってファイルを生成しているようなので、link
タグを消されるとFeed関連のHTMLも生成されなくなってしまい、S3にも転送がされなくなってしまいます。
原因
原因はStaticPressプラグインのもともとの仕様でした。
class-static_press.php
の453行目あたりの関数にで、特定のlink
タグをHTMLから除去する処理が書かれていました。
1 2 3 4 5 6 7 8 9 10 11 12 |
//453行目あたり public function remove_link_tag($content, $http_code = 200) { $content = preg_replace( '#^[ \t]*<link [^>]*rel=[\'"](pingback|EditURI|shortlink|wlwmanifest)[\'"][^>]+/?>\n#ism', '', $content); $content = preg_replace( '#^[ \t]*<link [^>]*rel=[\'"]alternate[\'"] [^>]*type=[\'"]application/rss\+xml[\'"][^>]+/?>\n#ism', '', $content);//こいつが犯人や!! return $content; } |
なるほど。
原因さえ分かればこっちのモン!!!
対応方法は簡単ですね♪
手順
class-static_press.phpの修正
原因となっている部分の処理を一部行わないようにしましょう。
以下のようにコメントアウトしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//453行目あたり public function remove_link_tag($content, $http_code = 200) { $content = preg_replace( '#^[ \t]*<link [^>]*rel=[\'"](pingback|EditURI|shortlink|wlwmanifest)[\'"][^>]+/?>\n#ism', '', $content); /* $content = preg_replace( '#^[ \t]*<link [^>]*rel=[\'"]alternate[\'"] [^>]*type=[\'"]application/rss\+xml[\'"][^>]+/?>\n#ism', '', $content); */ return $content; } |
修正はこれだけでOKです。
確認
では、実際にStaticPressで再構築を行ってみましょう。
正常にS3にFeed関連のファイルが転送されるようになりましたね♪
終わりに
StaticPressプラグインに限らず、Wordpressプラグインは非常に便利ですが、今回のように余計なことまでしてしまっている部分も良くあります。
そんな時は自分でプラグインのソースコードを読んで修正する必要があります。
ですので、多少なりともプログラミングの勉強をしておくと、より良いサイトが作れるようになるので、暇な時に少しずつPHP等の勉強をしておくと良いでしょう♪