WordPress Enqueue только для главной страницы, functions.php, wp-framework

15 июл. 2011 г., 14:54:19
Просмотры: 23.2K
Голосов: 10

Я хочу заменить мой код:

    if(is_home())
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    };

Который сейчас находится в header.php, перенеся его в файл functions.php. Пытаюсь навести порядок на разросшемся сайте клиента. Я использую wp-framework и в идеале хотел бы поместить это внутри функции enqueue_assets в основном классе parent_theme. Хотя это не совсем проблема wp-framework, я просто хотел бы знать:

Как заставить is_home() работать из файла functions? Есть ли альтернатива с использованием глобальных переменных, о которой мне нужно знать?

0
Все ответы на вопрос 1
2
26

Во-первых, если вам нужно настроить главную страницу сайта, используйте функцию is_front_page(). Условный тег is_home() возвращает true, когда отображается индекс записей блога, который может, но не обязан, быть на главной странице сайта.

Во-вторых, вам нужно подключить вашу функцию к соответствующему хуку, в данном случае это wp_enqueue_scripts.

(Также: что такое get_theme_part()? Это пользовательская функция в WP Framework?)

Например, вы можете сделать это в functions.php:

function mytheme_enqueue_front_page_scripts() {
    if( is_front_page() )
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_front_page_scripts' );
15 июл. 2011 г. 15:07:14
Комментарии

Чип, ты просто звезда. Спасибо. (Да, get_theme_part — это фишка wp-framework. Клянусь, новый релиз wp-framework просто потрясающий. Он офигенный)

mjjwatson mjjwatson
15 июл. 2011 г. 16:08:23

О, ну тогда всё ясно. По best practice, эту функцию следовало бы назвать с префиксом, например wpf_get_theme_part() или что-то подобное. Но я посмотрел — очень симпатичная маленькая функция.

Chip Bennett Chip Bennett
15 июл. 2011 г. 16:16:33