Intereting Posts
Плагин корабля с настраиваемой темой Добавить возможности загрузки файлов, необходимые для пользовательской роли для не-сообщений WordPress Shortcode для баннера, в котором переданный атрибут может содержать несколько предопределенных значений PHP для цикла не работает по назначению Все новые плагины генерируют 311 символов неожиданного вывода? Как правильно дезинфицировать строки для update_option () Изменение заголовка автозапуска в соответствии с различными свойствами сообщения Как отображать термины из пользовательской таксономии в иерархии И с пользовательской разметкой html? групповые сообщения по месяцам / дате игнорировать годы Как отправлять сообщения при регистрации клиента "Admin_enqueue_scripts" или $ _GET ? WordPress прекращает выполнение кода после метода require () загрузка javascript CDN с локальным резервным (не jQuery) Пагинация с использованием paginate_links Как получить заказ продукта на две пользовательские таксономии в wordpress

Функция для загрузки правильного CSS для шаблона не работает

У меня есть три шаблона, которые я хочу использовать (Страница индекса, Основной шаблон и По умолчанию). Я смог добавить инструкцию if if else в функцию, чтобы загрузить правильный файл CSS в зависимости от того, какой шаблон использовался между двумя шаблонами (Index и Default).

Однако, когда я пытаюсь использовать «elseif», поэтому я могу добавить в другой параметр для основного шаблона, он не работает. Вместо этого страница, использующая главный шаблон, загружает CSS-страницу индекса.

Это код, о котором идет речь:

if ( is_page() && ! is_page_template( 'page-templates/index_page.php' ) ) { wp_enqueue_style( 'authorLuncheon-layout-style1', get_template_directory_uri().'/layouts/index_page.css' ); } elseif ( is_page() && ! is_page_template( 'page-templates/main_template.php' ) ) { wp_enqueue_style( 'authorLuncheon-layout-style2', get_template_directory_uri().'/layouts/main_template.css' ); } else { wp_enqueue_style( 'authorLuncheon-layout-style3', get_template_directory_uri().'/layouts/content-sidebar.css' ); } 

Вот целая функция:

 function authorluncheon_scripts() { wp_enqueue_style( 'authorluncheon-style', get_stylesheet_uri() ); if ( is_page() && ! is_page_template('page-templates/index_page.php' ) ) { wp_enqueue_style( 'authorLuncheon-layout-style1', get_template_directory_uri().'/layouts/index_page.css' ); } elseif ( is_page() && ! is_page_template( 'page-templates/main_template.php' ) ) { wp_enqueue_style( 'authorLuncheon-layout-style2', get_template_directory_uri().'/layouts/main_template.css' ); } else { wp_enqueue_style( 'authorLuncheon-layout-style3', get_template_directory_uri().'/layouts/content-sidebar.css' ); } wp_enqueue_script( 'authorluncheon-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20120206', true ); wp_enqueue_script( 'authorluncheon-skip-link-focus-fix', get_template_directory_uri().'/js/skip-link-focus-fix.js', array(), '20130115', true ); if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } add_action( 'wp_enqueue_scripts', 'authorluncheon_scripts' ); 

Solutions Collecting From Web of "Функция для загрузки правильного CSS для шаблона не работает"

Я думаю, что ваша большая проблема здесь в том, что вы используете символы подчеркивания ( _ ) в именах ваших страниц. Согласно Руководству по стандартам кодирования

Файлы должны называться с использованием строчных букв. Дефисы должны отделять слова.

  • мой-плагин-name.php

Кроме того, для наилучшей практики вы должны вызвать свои собственные шаблоны страниц page-whatever.php

Так, например, index_page.php следует переименовать в page-index.php, а index_page.css следует переименовать в нечто вроде index-style.css

ПРИМЕЧАНИЕ. Помните, что если вы говорите о своей домашней странице, которая использует index.php или страницу блога, которая использует index.php или home.php, вы должны использовать is_home() вместо is_page() && !is_page_template('page-templates/index_page.php') . Если вы установили статическую переднюю страницу, вы должны использовать is_front_page() вместо is_page() && !is_page_template('page-templates/index_page.php') . Наверху вашей страницы также следует назвать front-page.php для хорошей практики, хотя вы можете использовать другие имена, как указано здесь

Я бы подумал, что это решит вашу проблему. Если нет, сообщите мне

РЕДАКТИРОВАТЬ

  if (is_page() && !is_page_template('page-templates/index_page.php')) { wp_enqueue_style('authorLuncheon-layout-style1', get_template_directory_uri() . '/layouts/index_page.css'); } elseif (is_page() && !is_page_template('page-templates/main_template.php')) { wp_enqueue_style('authorLuncheon-layout-style2', get_template_directory_uri() . '/layouts/main_template.css'); } else { wp_enqueue_style('authorLuncheon-layout-style3', get_template_directory_uri() . '/layouts/content-sidebar.css'); } 

Прочтите свой код выше на обычном английском языке

if (страница отображается, а шаблон НЕ является шаблоном страницы / index_page.php) {

enqueue мой стиль authorLuncheon-layout-style1

} else if (отображается страница, а шаблон НЕ является шаблоном страницы / main_template.php) {

enqueue мой стиль authorLuncheon-layout-style2

} else {

когда шаблон отображает IS-страницы-шаблоны / main_template.php или page-templates / index_page.php {

enqueue мой стиль authorLuncheon-layout-style3

}

Так что это в основном неправильное использование операторов. Помните ! означает противоположность условному, к которому он привязан. Поэтому вы должны полностью изменить свой код, чтобы это работало. Это всего лишь черновик

 if ( is_page() && is_page_template( 'page-templates/index_page.php' ) ) { //enqueue whatever style you want to use ON THIS SPECIFIC PAGE } elseif ( is_page() && is_page_template( 'page-templates/main_template.php' ) ) { //enqueue whatever style you want to use ON THIS SPECIFIC PAGE } else { //enqueue whatever style you want to use ON ANY OTHER PAGE } 

EDIT 2

Вы также можете попробовать это. Я бы также не использовал is_page()

 if ( !is_page_template( 'page-templates/index_page.php' ) && !is_page_template( 'page-templates/main_template.php' ) ) { //enqueue whatever style you want to use ON ANY OTHER PAGE THAN THIS TWO } elseif ( is_page_template( 'page-templates/index_page.php' ) ) { //enqueue whatever style you want to use ON THIS SPECIFIC PAGE } elseif ( is_page_template( 'page-templates/main_template.php' ) ) { //enqueue whatever style you want to use ON THIS SPECIFIC PAGE }