отменить регистрацию скриптов на определенной странице

Мне нужно исключить запуск определенных сценариев на определенной странице. Я пробовал этот код, но он не работает – когда я просматриваю страницу, скрипты все еще загружаются в нижний колонтитул моей страницы.

вот мой код в functions.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' ); } } 

что мне не хватает? благодаря!

Solutions Collecting From Web of "отменить регистрацию скриптов на определенной странице"

У вас есть основная ошибка в коде. Следующий код

 if ( !is_page('my-page') ) { 

означает, что если вы не находитесь на этой странице, отмените регистрацию сценариев. Посмотрите на php-операторы

 ! -> 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 } } 

Он намного чище и эффективнее. Я не вижу смысла в регистрации скрипта и снова его отменю. Скорее зарегистрируйте сценарии с самого начала

Наконец, я получил ТОЛЬКО мою первую страницу, чтобы не загружать 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_home (это стоило мне часа)

Я бы, вероятно, попытался только поставить эти сценарии на определенные страницы, вместо того, чтобы ставить их в очередь, а затем разыгрывать их:

 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_deregister_script

Надеюсь, это поможет.

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

добавьте этот скрипт в свой файл theme.php темы, вы разрешите запрос