8

不确定我的措辞是否正确,但基本上我只想在使用实际插件的页面上加载插件 CSS/JS。我已经通过插件文件搜索插件中使用的任何句柄完成了很多工作,wp_enqueue_script并且只是wp_dequeue_script他们在functions.php

但是,有一些包含 .php 而不是 css 文件的样式排队,例如.. 在插件中它排队一个文件

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

它将 -css 添加到 id 并拒绝出队/注销和移动。

我也试过以下没有运气

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

有什么建议么?

4

2 回答 2

17

脚本和样式可以在wp_print_*触发操作之前的任何时间以任何顺序排列。这使得在输出之前很难将它们从队列中删除。

为了使出队工作始终挂钩wp_print_styleswp_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(第三个参数add_action)将有助于确保回调remove_assets被调用last,就在打印脚本/样式之前。

请注意,虽然这种技术对于删除脚本/样式是合法的,但它不应该用于添加资产。有关更多信息,请参阅此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 回答