取消某些页面上的脚本注册

时间:2014-08-19 作者:roybatty

我需要排除某些脚本在特定页面上运行。我已经尝试了这段代码,但它不起作用-当我检查页面时,脚本仍被加载到我的页面页脚中。

这是我在函数中的代码。php

add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\', 100 );

function my_deregister_javascript() {
   if ( !is_page(\'my-page\') ) {
    wp_deregister_script( \'isotope\' );
    wp_deregister_script( \'anystretch\' );
    wp_deregister_script( \'imgliquid\' );
    wp_deregister_script( \'retina\' );
    wp_deregister_script( \'menutron\' );
    wp_deregister_script( \'imagesloaded\' );
    wp_deregister_script( \'myfunctions\' );

     }
}
我错过了什么?谢谢

4 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您的代码中有一个基本错误。以下代码

if ( !is_page(\'my-page\') ) {
意味着如果你是not 在那一页上,deregister 脚本。看看php operators

! ->  Not !$x True if $x is not true
另外,当您最初将这些脚本排入队列时,为什么不排除这个特定页面,比如

add_action( \'wp_enqueue_scripts\', \'my_register_javascript\', 100 );

function my_register_javascript() {
   if ( !is_page(\'my-page\') ) {

       // ENQUEUE/REGISTER SCRIPTS

     }
}
它更干净、更高效。我不认为注册脚本并再次取消注册有什么意义。而是从一开始就有条件地注册脚本

SO网友:Mark

最后,我只得到了我的首页,没有加载jquery,我想我会分享它,以可能节省一些其他黑客8小时的命中率。

// remove jquery from ONLY the front page

add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\' );
function my_deregister_javascript() {
   if ( is_home(\'front-page\') ) {
        wp_deregister_script( \'jquery\' );
   }
}
注:is_page 从第一个问题开始,当你想使用首页或主页时,必须使用is\\u home(这花了我一个小时)

SO网友:Steve Dimock

我可能只会尝试在特定页面上对这些脚本进行排队,而不是先排队再退队:

function wpse158453_enqueue_scripts() {
    if(!is_page(\'my-page\')) {
        wp_enqueue_script( \'jquery\', \'//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js\' );
        wp_enqueue_script( \'jquery-ui\', \'//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js\' );
        wp_enqueue_script( \'jquery-custom\', get_template_directory_uri() . \'/admin/js/custom.js\' );
    }
}
add_action( \'wp_enqueue_scripts\', \'wpse158453_enqueue_scripts\' );
否则你可以试试wp_dequeue_script 而不是wp\\U注销脚本

希望这有帮助。

SO网友:Viral M

//Remove jquery only on front page

add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\' );

function my_deregister_javascript() {
  if ( is_front_page() ) {
    wp_deregister_script( \'jquery\' );
 }
}
在主题中添加此脚本function.php 您将解析查询的文件

结束

相关推荐

If is_single in functions.php

我希望删除wpautop筛选器仅对我博客中的帖子起作用。因为在某些页面,我需要autop,而在某些页面,我需要它不在那里。我使用以下规则,这是在我的主题函数中。php:remove_filter( \'the_content\', \'wpautop\' ); 因为我只想在博客上看到它,所以我在考虑if语句,我在Wordpress中搜索了条件标记页面,发现我可以使用is\\u single。但它不起作用。这是我现在使用的代码。if(is_single() ){ remove_f