2012-09-17 8 views
7

実際にはプラグインを使用しているページにのみ、プラグインCSS/JSをロードしたいと思っていました。プラグイン内でwp_enqueue_scriptで使用されているハンドルのプラグインファイルを検索し、単にwp_dequeue_scriptをfunctions.phpに入れてください。wordpressはクエリーを持つスクリプト/スタイルをデキューできません

しかし、.phpを含むスタイルのためにはいくつかのエンキューがありますプラグインは、それが

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

ので、私が試したファイルをエンキュー:

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

ページ/ポストは、それがIDに-css addes

<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' /> 

として、それが示してレンダリングされるとき、それは

しかし、動作しません、それは/登録解除をデキューとなることを拒否します移動した。

また、私は運で、次の

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

任意の提案を試してみましたか?

+0

誰かが私にこれを助けることができたら大好きです:-( –

答えて

8

念のためには、wp_print_*アクションがトリガーされる前に、この?:

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')); 
} 
13

スクリプトとスタイルは、任意の順序で、いつでもでエンキューすることができますようにあなたは、アクションによって呼び出される関数の中にコードを配置しています。出力前にキューから削除するのが難しくなる可能性があります。

デキュー作業を一貫して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', 99999); 

行動にフックするとき高priorityadd_actionの三番目の引数)を設定するのに役立ちますスクリプト/スタイルが印刷される直前に、remove_assetsというコールバックがの最後のと呼ばれるようにしてください。

注、この技術は、それが資産を追加するために使用することがshould'tスクリプト/スタイルを取り除くための正当なものである一方で。詳細はWordpress Core blog postを参照してください。

+0

Woh、thanks leepowers、私は多くの時間スクリプトをデキューすることに問題がありました...これは本当にトリックでした! – Adal

+0

私にも問題が解決しました。 1 – Hoshts

+0

私はあなたにビールを借りています@leepowers – cabgfx

関連する問題