サポート » 使い方全般 » 特定ページでプラグインを無効化させたい

  • 解決済 justinmikelwy

    (@justinmikelwy)


    現在、自サイトのAMP対応を進めております。
    その中で、「Head-Cleaner」というプラグインが意図せぬ動作をしコードを書き換えてしまうことで、エラーが出ます(AMP以外のページではエラーは出ていません)。

    そこで、プラグインを(Head-Cleaner)を特定ページでのみ無効化させたいのですが、どのようにしたらよいでしょうか?

    アドバイスよろしくお願い致します。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • キャッシュ系プラグインは使っていないのですが、フロントページやダッシュボードではキャッシュさせない仕組みがあったと記憶しています。

    こんにちは

    以下のようなプラグインで、投稿毎にプラグインの動作をコントロールできるかもしれません。

    https://wordpress.org/plugins/plugin-organizer/

    「自サイトのAMP対応」は、AMPプラグイン等を使わず自前で対応されているんですか?

    AMPのときはget_header()かwp_head()の前に以下のコードを実行すればHead-Cleanerのフックを無効にできそうです。

    foreach($wp_filter as $filter_name => $hooks){
    	
    	foreach($hooks as $hook => $funcs){
    		foreach($funcs as $func){
    			if(is_array($func['function'])){
    				if($func['function'][0]->plugin_name == 'head-cleaner'){
    					remove_filter($filter_name, $func['function']);
    				}
    			}
    		}
    	}
    }

    デフォルト設定でのHead-Cleanerでしか試していないので、完璧ではないかもしれません。
    でも、どうしてもHead-Cleanerが必要なのでなければ、無効化してもいいんじゃないかなと思います。

    このようなフィルター削除の処理にせよ、@nobitaが提案されているプラグインの導入にせよ、パフォーマンスを向上するプラグインに対して余計な処理を追加するような対症療法な感じがして・・・

    jsやcssの圧縮はWebサーバーがdeflateに対応していれば可能ですし、キャッシュもhtaccessの設定でブラウザ側にさせることができます。
    確かに、ヘッダのクリーニング以外にOGPやLast Modifiedの追加などの便利な機能もありますけどね。

    @munyagu さん

    プラグイン使わなくても、出来るんですね!

    このようなフィルター削除の処理にせよ、@nobitaが提案されているプラグインの導入にせよ、パフォーマンスを向上するプラグインに対して余計な処理を追加するような対症療法な感じがして・・・

    AMPプラグインを前提にすると、ampのテンプレートは head 要素を直に書いてあるので、get_header()は使っていないのでプラグインからのヘッダーへの書き込みは 行われないので、head-cleanerを使っていたとしても、ampページでは動作しないです。

    CDNから配信されていなくても、AMPページが、早く動作するのは その辺りの事によるんだと思います。

    個人的には、テーマとは真逆で、どうやって化粧をしないで、すっぴん でやっていくかというところが、面白いところだと思いますが、化粧の仕方も個人によって異なりますし、

    ( 今日もAMPエラーに出会って、h3 要素ではdata属性使えません(どういう意味か今のところ皆目不明…)といった、AMPの理解の問題もあったりするので )

    いろいろなサイトで、いろんなAMP花を咲かせていただいて そこから お勉強したいなー なんて思っています。

    • この返信は7年、 7ヶ月前にnobitaが編集しました。

    私もAMP自体はプラグイン入れています。
    入れただけで何もしていないほったらかしですが・・・

    AMPプラグインを前提にすると、ampのテンプレートは head 要素を直に書いてあるので、get_header()は使っていないのでプラグインからのヘッダーへの書き込みは 行われないので、head-cleanerを使っていたとしても、ampページでは動作しないです。

    @justinmikelwyさんは独自にAMP用のテンプレートを自作されているのでwp_head()なんかで影響が出てしまうんですね。
    get_header()やwp_head()をやめて、ヘッダをご自分で書いた方がいいのかもしれませんね。

    トピック投稿者 justinmikelwy

    (@justinmikelwy)

    こんにちは@justinmikelwyです。

    @digitmaetelさん、@nobitaさん、@munyaguさん、アドバイスありがとうございます。
    みなさんのご提案とても参考になります。

    説明不足ですいませんでした。以下詳細を載せさせていただきます。

    自サイトのAMP対応は、AMPプラグインを入れずに自前で進めております。head-cleanerを停止すると、エラーが0でAMP対応完了状態までこぎ着けました(Developer Toolsで確認済み)。

    しかし、head-cleanerを有効化させると、以下のように勝手にコードが再生成されてしまいます。

    <link rel="dns-prefetch" href="//cdn.ampproject.org">
    <style type="text/css" media="all">/*<![CDATA[ */…/* ]]>*/</style>

    これらのコードの書き換えはhead-cleanerのオプション設定を全て外しても起こります。また、wp_head()やwp_footer()は、条件分岐でAMP対応ページでは外しております

    何分、キャッシュなどについては知識不足のため困っている次第です。

    • この返信は7年、 7ヶ月前にjustinmikelwyが編集しました。

    @nobitaさんが提案されているプラグインや私のコードを試しても効果がなかったということでしょうか?

    • この返信は7年、 7ヶ月前にmunyaguが編集しました。
    トピック投稿者 justinmikelwy

    (@justinmikelwy)

    @munyaguさんご返信ありがとうございます。
    今からお二方に教えて頂いた方法を試してみます。結果が分かり次第すぐにここで報告させて頂こうと思います。

    トピック投稿者 justinmikelwy

    (@justinmikelwy)

    こんばんは@justinmikelwyです。

    みなさん、アドバイス有難うございます。
    @munyaguさん、@nobitaさんの方法を試してみましたが、エラーが出てしまいました。head-cleanerと他のキャッシュ系プラグイン(W3 Total Cache)との相性もあるのかもしれません。

    もう少し、粘ってみてダメだったらhead-cleanerを停止して対応しようと思います。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「特定ページでプラグインを無効化させたい」には新たに返信することはできません。