ねこじゃすり
猫を魅了する魔法の装備品!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
スポンサーリンク
目次
あれ、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等の勉強をしておくと良いでしょう♪