所以我一直在尝试让插件脚本/css只在需要的时候加载。我有一个名为“评论”的帖子类别,在下面的functions.php中,我试图只在带有类别“评论”的帖子上加载插件,而不管加载的是什么页面/帖子/主页screen..nothign。有什么可以帮忙的吗?
add_action( 'init', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!in_category('review')){
remove_action('wp_head', 'myrp_load_necessary_js');
remove_action('wp_head', 'myrp_track_traffic');
wp_deregister_script( 'myrp-stuff' );
wp_dequeue_script( 'jtip' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-ui' );
wp_dequeue_script( 'myrp-stuff' );
wp_dequeue_script( 'jquery-ui-accordion' );
wp_dequeue_script( 'jscolor' );
wp_dequeue_script( 'sorttable' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-rating' );
}}编辑::我已经让它工作了,除了它不能在is_category或in_category上工作的事实。我的工作成果如下:
add_action( 'wp_print_scripts', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!is_single()){
remove_action('wp_head', 'myrp_load_necessary_js');
remove_action('wp_head', 'myrp_track_traffic');
wp_deregister_script( 'myrp-stuff' );
wp_dequeue_script( 'jtip' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-ui' );
wp_dequeue_script( 'myrp-stuff' );
wp_dequeue_script( 'jquery-ui-accordion' );
wp_dequeue_script( 'jscolor' );
wp_dequeue_script( 'sorttable' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-rating' );
}}我仍然希望我可以在某些类别中使用这项工作。
发布于 2012-09-18 01:35:30
我觉得你想要is_category
它可以在循环之外使用,并根据当前视图返回一个布尔值。
更新:
更仔细地观察你的操作钩子,“它不工作”的原因是因为动作的优先顺序。您试图在“init”操作取消脚本注册和退出队列,该操作可能在脚本本身实际注册和/或入队之前触发。
我还猜测,外部脚本是由各种插件注册的,每个插件都有自己的操作挂钩和优先级。
不使用初始化钩子,而是尝试将其更改为“wp_footer”,以确保在删除任何多余的脚本之前,所有脚本都由其相应的插件加载:
if (!is_category('review'))
{
remove_action('wp_head', 'myrp_load_necessary_js');
remove_action('wp_head', 'myrp_track_traffic');
add_action('wp_footer', 'stopmyrpjs');
}
function stopmyrpjs(){
wp_deregister_script( 'myrp-stuff' );
wp_dequeue_script( 'jtip' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-ui' );
wp_dequeue_script( 'myrp-stuff' );
wp_dequeue_script( 'jquery-ui-accordion' );
wp_dequeue_script( 'jscolor' );
wp_dequeue_script( 'sorttable' );
wp_dequeue_script( 'jquery-MetaData' );
wp_dequeue_script( 'jquery-rating' );
}此外,请记住,wp_dequeue_script是一个相对较新的功能(从3.1版开始)。如果出于某种原因,您仍然遇到问题,请尝试将wp_dequeue_script更改为wp_deregister_script。
一些进一步的检查将确保函数本身正在触发,并且适当的视图会使您的条件计算为true。
希望这对你有所帮助,祝你好运。
发布于 2014-06-17 16:02:45
是一个WordPress插件,可以让你完全控制所有的JavaScript和CSS文件。您可以有条件地加载CSS和JS文件只在页面上需要使用可湿性粉剂的conditional tags。
https://stackoverflow.com/questions/12463304
复制相似问题