我试图从一个插件中排出一些脚本,我只需要在主页上使用。对于主页,我使用了一个名为front-page.php的文件,该文件的顶部为home模板:
<?php
/*
Template Name: Home
*/
?>函数正在删除脚本,但它正在删除所有页面上的脚本。我希望脚本只加载到主页。我尝试过if ( !is_page_template('home.php') ) {和if ( !is_front_page() ) {,但它们都产生了与第一个相同的结果。
function wpcyclone_dequeue_script() {
wp_dequeue_script( 'jquery-cycle2' );
wp_dequeue_script( 'jquery-cycle2-swipe' );
wp_dequeue_script( 'cyclone-client' );
}
if ( !is_page('Home') ) {
add_action( 'wp_print_scripts', 'wpcyclone_dequeue_script', 100 );
}我哪里出错了?
发布于 2014-12-08 04:26:10
只是你的代码上的几个注意事项
$wp_scripts全局中完全删除。wp_print_scripts,这是错误的钩子。你应该使用wp_enqueue_scriptsis_front_page(),您可以使用它来检查您的页面是否是首页。您的代码应该如下所示
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript', PHP_INT_MAX );
function my_deregister_javascript() {
if ( !is_front_page() ) {
wp_dequeue_script( 'jquery-cycle2' );
wp_deregister_script( 'jquery-cycle2' );
wp_dequeue_script( 'jquery-cycle2-swipe' );
wp_deregister_script( 'jquery-cycle2-swipe' );
wp_dequeue_script( 'cyclone-client' );
wp_deregister_script( 'cyclone-client' );
}
}发布于 2014-12-08 04:01:24
没关系,我是通过另一种方式想出来的:
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
if ( !is_page('Home') ) {
wp_deregister_script( 'jquery-cycle2' );
wp_deregister_script( 'jquery-cycle2-swipe' );
wp_deregister_script( 'cyclone-client' );
}
}我还是很好奇为什么以前的方法行不通。
https://wordpress.stackexchange.com/questions/170544
复制相似问题