Подключение и отключение скриптов и стилей на отдельной странице, записи WordPress

Бывают такие ситуации, что подключение всех скриптов к отдельной странице совсем не к чему. Ладно если это статический HTML сайт. Тут все предельно ясно, размещаешь скрипты только на нужных страницах. А как же тогда подключить или наоборот, отключить скрипт или файлы стилей на определенной странице или в записи WordPress?

Итак, давайте по порядку.


Подключение скриптов и стилей к отдельной странице или записи WordPress


Обратите внимание !

Отключать и подключать скрипты и стили WordPress нужно в файле functions.php, что-бы не повторяться в дальнейшем.

Здесь все предельно просто, только нужно узнать ID страницы или записи, в которой нужно отключить, подключить файл скрипта или файл стилей. Для этого зайдите в админку во вкладку все записи или страницы и наведите курсор на ссылку записи, страницы. На мониторе слева вылезет что-то типа




подключение скриптов WordPress
2780 — это и есть ID записи.

Подключение скрипта

function portfolio_scripts() {
 if ( is_single('6') ) 
 wp_enqueue_script( 'izotope', get_template_directory_uri() . '/js/izotope.js', array( 'jquery' ), '2.9', true );
 }
add_action( 'wp_enqueue_scripts', 'portfolio_scripts' );

Комментирую :
if ( is_single('6') ) — условие для скрипта. Если запись с ID 6, то подключать скрипт. Если это будет страница, а не запись пишите is_page('6')

'/js/izotope.js' — папка, в которую помещен скрипт и сам скрипт. Обязательно в директории темы.

'izotope' — уникальное название скрипта. Оно нам пригодится ниже, для отключения скрипта.

true — подгружаем скрипт после загрузки страницы. Если при этом параметре скрипт не работает, меняем на false.

Подключение стилей

function portfolio_styles() {
 if ( is_single('6') ) 
 wp_enqueue_style('portfolio', get_template_directory_uri() . '/css/portfolio.css', array(), '1.0' );
 }
add_action( 'wp_enqueue_styles', 'portfolio_styles' );

Здесь комментировать нечего, кроме хука, в первом случае
wp_enqueue_script
wp_enqueue_styles — не заморачивайтесь, просто отметьте для себя, если грузите скрипт, то первый вариант, если стили, то второй.


Комбинируем подключение скриптов и стилей


Иногда нужно подключить несколько скриптов и стилей к одной странице, тогда можно совместить подключение скриптов и стилей, собрать их в одну функцию, что-бы код в файле functions.php был покороче.

function portfolio_scripts_styles() {
 if ( is_single('6') ) 

 wp_enqueue_style('portfolio', get_template_directory_uri() . '/css/portfolio.css', array(), '1.0' );

 wp_enqueue_script( 'izotope', get_template_directory_uri() . '/js/izotope.js', array( 'jquery' ), '2.9', true );

 }
add_action( 'wp_enqueue_scripts', 'portfolio_scripts_styles' );

Отключение скриптов и стилей в определенной странице или записи WordPress


Все почти что аналогично.

Отключение скрипта

function my_deregister_java () {
if ( is_single ('6') ) {
wp_deregister_script ( 'social' );
}
}
add_action ( 'wp_print_scripts', 'my_deregister_java', 100 );

Пояснения :
Все аналогично подключению.
'social' — уникальное имя. Чтобы отключить скрипт или стили, нужно знать уникальное имя скрипта, стилей. Смотрите где они подключаются. Это могут быть файлы плагинов — смотрите в плагинах, или скрипты и стили темы, в файле functions.php




Отключение стилей

function my_deregister_style () {
if ( is_single ('6') ) {
wp_deregister_style ( 'social-likes' );
}
}
add_action ( 'wp_print_styles', 'my_deregister_style', 100 );

Источник

2 thoughts on “Подключение и отключение скриптов и стилей на отдельной странице, записи WordPress

  • 06/03/2018 в 22:09
    Permalink

    Спасибо! Понадобилось вот выборочно джейкуверти подключить, исключая одну техническую страницу и тут ваше руководство помогло :-)

    Ответ
  • 13/08/2018 в 09:39
    Permalink

    Доброго времени суток. Что-то у меня не получается отключить вашим способом скрипт. Есть сайт theshoes.com.ua, на нем хочу отключить скрипт froogaloop2.min.js. Захожу в файл functions.php своей темы и добавляю следующие строчки кода:

    function my_deregister_java () {
    if ( is_single (‘6’) ) {
    wp_deregister_script ( ‘froogaloop2.min.js’ );
    }
    }
    add_action ( ‘wp_print_scripts’, ‘my_deregister_java’, 100 );

    Но ничего не меняется. Скрипт как загружался, так и загружается. Подскажите пожалуйста что я делаю не так.

    Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.