Intereting Posts
Удалите пул блога из корневого узла WordPress Multisite Выберите объекты из get_posts () Как избежать сжатия WordPress метаданных EXIF ​​при изменении размера изображений? Исключение цитат из атрибутов короткого кода Планировщик бронирования отелей вы бы порекомендовали Пользовательские возможности для добавления, редактирования, удаления пользователей только определенной роли? Динамические боковые панели и эхо Почему `add_theme_support ('html5', array ('comment-form')` отключить проверку на стороне клиента? Проблема с ошибкой wp_insert_post и post_content Не удалось обновить сообщение в базе данных Могу ли я использовать тот же textdomain в двух отдельных плагинах? Возвращать массив категорий в php-функцию Почему (и как?) Get_header () стирает все мои вещи? WP_Query и использование переменной для 'cat' => в массиве args = WP Bug? Ссылка категории стиля в зависимости от идентификатора категории Страница параметров образца темы для Multisite – что следует учитывать

is_front_page не работает в functions.php

Я пытаюсь включить CSS-файл, используя wp_enqueue_style условно, на ли я на первой странице. Я тестирую домашнюю страницу с помощью этого кода:

if ( is_front_page() ) wp_enqueue_style ('TBDhome', get_template_directory_uri() . '/css/TBDhome.css','all'); 

Он работал, когда я тестировал в файле заголовка и включал в себя файл CSS.

Solutions Collecting From Web of "is_front_page не работает в functions.php"

Несмотря на то, что этот вопрос может опротестовать, потому что недостаточно информации, и довольно легко найти учебники в другом месте, я поможем вам.

В вашем файле functions.php в вашей теме вам нужно сделать следующее:

 add_action( 'wp_enqueue_scripts', 'wp5849_scripts' ); function wp5849_scripts() { if ( is_front_page() ) : wp_enqueue_style('TBDhome', get_stylesheet_directory_uri() . '/css/TBDhome.css'); endif; } 

Что это делает: первая строка add_action – это крючок для запуска вашей функции wp5849_scripts() в определенный момент во время внутренней настройки WordPress. Вы можете больше узнать о крючках и фильтрах действий в кодексе WordPress .

Вторая часть – это фактическая функция для размещения таблицы стилей. Проверяет, будет ли это первая страница сайта, если она пройдет, она загрузит таблицу стилей.

Я обновил каталог, который будет get_stylesheet_directory_uri() потому что если вы используете get_template_directory_uri() тему, get_template_directory_uri() вернет каталог темы PARENT . get_stylesheet_directory_uri() будет работать с любой темой, которая в данный момент активна (родительский или дочерний).

Вы можете больше узнать о аргументах, переданных в wp_enqueue_style здесь

В качестве примечания: у вас может уже быть функция, которая заставляет скрипты и стили в ваших functions.php (посмотрите на add_action( 'wp_enqueue_scripts') ). Если это так, вам просто нужно добавить:

 if ( is_front_page() ) : wp_enqueue_style('TBDhome', get_stylesheet_directory_uri() . '/css/TBDhome.css'); endif; 

к функции, которую вызывает add_action . Я хотел добавить это как вариант.

EDIT: похоже, может возникнуть проблема с большей проблемой или проблема с настройкой, основанная на комментариях OP. Здесь можно поместить таблицу стилей в header.php

 if ( is_front_page() ) { echo '<link rel="stylesheet" id="TBDHome-css" href="' . get_stylesheet_directory_uri() . '/css/TBDhome.css" type='text/css' media='all' /> } 

is_front_page() возвращает false перед wp-крюком, потому что объект wp еще не настроен.

 //* If placed directly in functions.php, this will work add_action( 'wp', 'wpse_282498_wp' ); function wpse_282498_wp() { if( is_front_page() ) { do_something_useful(); } } //* If placed directly in functions.php, this will *not* work if( is_front_page() ) { //* Because this will never be run do_something_useful(); }