Intereting Posts
Обновить все фотографии после импорта Содержимое по умолчанию для сообщения в одной категории? Сбой пароля WordPress не работает. Войдите в WordPress, нажав ссылку и указав usernaname и пароль в url Слишком много get_template_parts? wpdb-запрос не возвращает результаты, содержащие одинарные кавычки Помогите с вопросами о «Добавление фильтра таксономии в список администраторов для пользовательского типа сообщений?» Сомнения в использовании метаданных и то, как это может повлиять на производительность на WordPress Найти и заменить доменное имя на лету? Пользовательское описание таксономии, TinyMCE и сохранение изображений / мультимедиа Как я могу просматривать свои сообщения в порядке возрастания по количеству просмотров Новый метод отключения wpautop после WP 4.3? Не показывать html, если функция ничего не возвращает Разный баннер для разных разделов Возможно ли поддерживать соотношение сторон изображения при масштабировании изображений?

Функция для загрузки правильного 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 }