Zheleznov
@Zheleznov

Как правильно подключить отдельно скрипты и стили на разных страницах WordPress?

Доброе утро всем (◠‿◠)

В проекте:
- 2 страницы категорий для записей (Новости, Проекты)
- Интернет-магазин WooCommerce

Для каждого шаблона подключены отдельные стили и скрипты потому что так надо
Но ошибка заключается в том, что скрипты и стили примененные к страницам категорий постов и самих постов,
отображаются на страницах магазина. (⊙▂⊙)

Как можно это пофиксить? ¯\_(o_O)_/¯

// ================================= СТРАНИЦЫ НОВОСТИ И ПРОЕКТЫ
    if ( is_archive() || is_single() ) { 
    //if ( is_archive(array('24', '25')) || is_single() ) { 
    //if ( is_page_template(array('archive.php', 'single-news.php')) ) {   
    //if ( is_archive() || is_single() || ! is_woocommerce() || ! is_cart() || ! is_checkout() || ! is_account_page() ) {  
    
        //подключаем стиль в header
       wp_enqueue_style('bkm-archive-css', get_theme_file_uri('css/news-project.min.css')); 

        //подключаем скрипт в подвале
       wp_enqueue_script('bkm-archive-js', get_theme_file_uri('js/news-project.min.js'), array(), '', true);  
    }

    // ================================= СТРАНИЦЫ WOOCOMMERCE
    if ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) { 
    //if ( ! is_single() || ! is_archive() || is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) { 
        //подключаем стиль в header
        wp_enqueue_style('bkm-woocommerce-css', get_theme_file_uri('css/shop.min.css')); 

        //подключаем скрипт в подвале
        wp_enqueue_script('bkm-woocommerce-js', get_theme_file_uri('js/shop.min.js'), array(), '', true); 
        wp_enqueue_script('bkm-woocommerce-js', get_theme_file_uri('js/add-to-cart.min.js'), array(), '', true); 
    }


Пробовал для статей указывать шаблон is_page_template, и только is_archive() || is_single() , и указывать ID в is_archive() || is_single() , всё равно.... ಠ_ಠ

Когда через is_page_template , со страниц woocommerce лишние стили пропадают, но и на страницах статей всё тоже слетает.. (╥_╥)
Остальные варианты просто не работают, стили в постах и категориях только свои, в woocommerce всё вместе...
(︶︹︺)
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Проще всего проверить post_type, чтобы применить стили для конкретного типа записи. Это условие сработает и для архивных и для сингл страниц

if ( get_post_type() === 'post' ) {
	# code...
}


Что касается вашей задачи, то понадобится составное условие. Вам нужно убедиться, что вы находитесь в одной из двух категорий или сингл post имеет одну из двух категорий:

if ( is_category( [ 'news', 'projects' ] ) || ( is_singular( 'post' ) && has_category( [ 'news', 'projects' ] ) ) ) { 
	# code...
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы