Intereting Posts
Установка плагинов и использование сложной структуры папок с дочерней темой в WordPress Мой стиль в моей дочерней теме загружается после родительской темы, но это ломает вещи: как загрузить его перед родительской темой? Как запросить персонализированный тип сообщения один за другим Сохранить запись, создать динамическую папку в папке загрузки Изменяет ли «WPLANG» в wp-config.php просто эффект языка администратора или имеет другие последствия? Удалить дату из результатов поиска Google Описание Сообщение об изменении электронной почты автора WordPress? Какой основной файл отвечает за гравитары? Как получить случайное изображение из подмножества изображений в медиа-галерее? Как я могу извлечь информацию из своего цикла и разделить их отдельно? Пользовательские результаты WP_Query показывают одинаковые записи на всех страницах разбивки на страницы Как защитить загрузки, если пользователь не зашел в систему? как запрашивать сообщения по категориям и тегам? пользовательские возможности типа сообщения – должны быть ОЧЕНЬ безопасными add_filter the_content не работает

Как загрузить пользовательские скрипты и стили для страницы?

Для разных страниц часто требуется различный набор сценариев и стилей для них.

Я использую functions.php и конструкцию для загрузки сценариев и стилей:

function load_assets() { wp_enqueue_style( 'styles', get_template_directory_uri() . '/css/styles.css'); wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js'); } add_action( 'wp_enqueue_scripts', 'load_assets' ); 

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

 is_page() 

но есть ли лучший способ?

Предложение:

Можно ли использовать wp_register_script () для таргетинга на определенные страницы?

Да, вы можете добавить условные теги к действию wp_enqueue_scripts . См. Примеры ниже:

 function load_assets() { wp_enqueue_style( 'styles', get_template_directory_uri() . '/css/styles.css'); // loads on any 'page' post type if( is_page() ){ wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js'); } // only loads on the page with a slug of 'home' if( is_page('home') ){ wp_enqueue_script('home-js', get_template_directory_uri() . '/js/home.js'); } } add_action( 'wp_enqueue_scripts', 'load_assets' ); 

Другие примеры использования is_page() см. На странице codex: https://codex.wordpress.org/Function_Reference/is_page

Для администратора вы можете сделать это.

 function load_assets( $hook ) { global $post; if ( $hook == 'post-new.php' || $hook == 'post.php' ) { // enqueue here } } add_action( 'admin_enqueue_scripts', 'load_assets', 10, 1 );