8

wp_enqueue_script言い方が正しいかどうかはわかりませんが、基本的には、実際のプラグインを使用するページにのみプラグイン CSS/JS をロードしたかったのです。 functions.php で単にwp_dequeue_scriptそれらを

ただし、css ファイルではなく .php を含むスタイルのエンキューがいくつかあります。たとえば、プラグインではファイルをエンキューします。

wp_enqueue_style("myrp-stuff", MYRP_PLUGIN_URL . "/myrp-hotlink-css.php");

だから私は試しました:

wp_dequeue_style('myrp-stuff');
wp_deregister_style('myrp-stuff');

うまくいきません

ただし、ページ/投稿がレンダリングされると、次のように表示されます

<link rel='stylesheet' id='myrp-stuff-css'  href='http://www.modernlogic.co/wp/wp-content/plugins/MyRP/myrp-hotlink-css.php?ver=3.4.2' type='text/css' media='all' />

ID に -css を追加し、デキュー/登録解除および移動を拒否します。

私も運が悪いので次のことを試しました

wp_dequeue_style('myrp-stuff-css');
wp_deregister_style('myrp-stuff-css');

助言がありますか?

4

2 に答える 2

17

wp_print_*スクリプトとスタイルは、任意の順序で、アクションがトリガーされる前にいつでもキューに入れることができます。これにより、出力前にキューからそれらを削除することが難しくなる可能性があります。

出力の直前にスクリプトとスタイルが削除されるため、デキューを一貫してフックするwp_print_stylesか、優先度を高くします。wp_print_scripts

たとえば、プラグイン ローダー コードまたはテンプレートのfunctions.phpファイルに、次のような関数とアクション フックを含めることができます。

function remove_assets() {
    wp_dequeue_style('myrp-stuff');
    wp_deregister_style('myrp-stuff');
}
add_action( 'wp_print_styles', 'remove_assets', PHP_INT_MAX );

アクションにフックするときに高い値priority( の 3 番目の引数) を設定すると、スクリプト/スタイルが印刷される直前に、コールバックが最後に呼び出されるようになります。add_actionremove_assets

この手法はスクリプト/スタイルの削除には有効ですが、アセットの追加には使用しないでください。詳細については、このWordpress Core ブログ投稿を参照してください。

于 2013-04-12T02:37:26.587 に答える
8

念のため、次のようなアクションによって呼び出される関数内にコードを配置しましたか?:

add_action('wp_enqueue_scripts', 'dequeue_function');
function dequeue_function() {
    wp_dequeue_style( array('myrp-stuff', 'myrp-stuff-css') );
    wp_deregister_style( array('myrp-stuff', 'myrp-stuff-css') );
}
于 2012-11-29T19:30:40.457 に答える