Есть ли способ создать шаблон, который не имеет связанного с ним стиля сайта?

Недавно я завершил WP-сайт для клиента, и они хотели бы иметь некоторые статические страницы, добавленные на сайт, на которых нет заголовка, нижнего колонтитула и навигации. Затем эти страницы будут загружены на другие сайты с помощью iFrame. Будучи совершенно новым для WP, я не совсем уверен, как это сделать, но я думаю, что если я создам шаблон страницы, который не включает header.php и footer.php, я могу идти в правильном направлении. Это верно? Какие рекомендации существуют для этого?

Благодарю.

Solutions Collecting From Web of "Есть ли способ создать шаблон, который не имеет связанного с ним стиля сайта?"

Не включая header.php и footer.php – это плохая идея, поскольку они обычно содержат вызовы wp_head() и wp_footer() , которые требуются функциями плагинов и темы (конечно, в зависимости от того, что вы делаете на своем сайте).

Во-вторых, вы создаете недействительный HTML.

В зависимости от ваших потребностей для этого есть множество решений.

Если вы просто хотите удалить стиль, вы можете удалить dequeue style.css в начале вашего шаблона (перед вызовом get_header() ):

 wp_dequeue_style( 'style' ); // whatever slug you registered your style.css on 

Таким образом, вы не доставляете style.css .

Но я не думаю, что это то, что вы хотите. Если вы хотите удалить заголовок и нижний колонтитул вашего шаблона (например, меню сверху и нижние колонтитулы), лучшим способом было бы посмотреть на functinon get_header( $name ) . Как вы можете видеть, вы можете передать ему строку, а когда вы это сделаете, вызывается другой php-файл.

 get_header(); // results in header.php getting loaded get_header( 'custom' ); // results in header-custom.php 

Это то же самое с get_footer() .

В вашем новом header-custom.php вы можете просто добавить небольшой контент, который вам нужен, чтобы обеспечить правильное отображение и функциональность вашего сайта.

Чтобы обернуть вещи, создавая страницу в WordPress, вам нужно выбрать свой новый шаблон страницы, а все остальное будет работать автоматически.

Да, вы в правильном направлении. Вы изучали:

 <?php get_template_part( $slug, $name ); ?> 

Codex: http://codex.wordpress.org/Function_Reference/get_template_part

Это звучит точно, что вам нужно.

Правильный способ добавления стилей на страницы WordPress – использовать функцию wp_enqueue_style внутри функции, которая перехватывает 'wp_enqueue_scripts' действия 'wp_enqueue_scripts' .

Что-то вроде:

 add_action( 'wp_enqueue_scripts', 'my_styles_function' ); function my_styles_function() { wp_enqueue_style( 'style1', get_template_directory_uri() . '/css/style1.css' ); wp_enqueue_style( 'style2', get_template_directory_uri() . '/css/style2.css' ); } 

Таким образом, все стили, помещенные в очередь, правильно вставляются в шаблоны, когда вы вызываете функцию wp_head() . Этот вызов функции обычно находится внутри файла header.php который WordPress входит в текущий шаблон при вызове функции get_header() .

Если вы хотите, чтобы на некоторых страницах были разные стили, вы можете ставить в очередь разные стили для разных страниц. Это можно легко сделать с помощью условных тегов .

Предположим, у вас есть шаблон страницы с именем 'special-page.php' .

Используя условный тег is_page_template() вы можете легко добавить разные стили для этого настраиваемого шаблона страницы. Пример:

 add_action( 'wp_enqueue_scripts', 'my_styles_function' ); function my_styles_function() { $uri = get_template_directory_uri(); if ( is_page_template( 'special-page.php' ) ) { wp_enqueue_style( 'special-style', $uri . '/css/special-style.css' ); } else { wp_enqueue_style( 'style1', $uri . '/css/style1.css' ); wp_enqueue_style( 'style2', $uri . '/css/style2.css' ); } } 

В качестве альтернативы вместо использования полного URL- wp_enqueue_style стиля внутри вызова wp_enqueue_style можно регистрировать стили только один раз с помощью wp_register_style , а затем условно зависеть от них на основе текущего представления. Пример:

 add_action( 'after_setup_theme', 'my_register_styles' ); function my_register_styles() { $uri = get_template_directory_uri(); wp_register_style( 'bootstrap', $uri . '/css/bootstrap.css' ); wp_register_style( 'common', $uri . '/css/common.css' ); wp_register_style( 'single', $uri . '/css/single.css' ); wp_register_style( 'page', $uri . '/css/page.css' ); wp_register_style( 'contact', $uri . '/css/contact.css' ); wp_register_style( 'special', $uri . '/css/special.css' ); } add_action( 'wp_enqueue_scripts', 'my_styles_function' ); function my_styles_function() { wp_enqueue_style( 'bootstrap' ); wp_enqueue_style( 'common' ); if ( is_single() ) { wp_enqueue_style( 'single' ); } elseif ( is_page() ) { wp_enqueue_style( 'page' ); if ( is_page( 'Contact Page' ) ) { wp_enqueue_style( 'contact' ); } } elseif ( is_page_template( 'special-page.php' ) ) { wp_enqueue_style( 'special' ); } } 

Как вы можете видеть, когда стили уже зарегистрированы, чтобы установить их в очередь, вам нужно использовать wp_enqueue_style с идентификатором стиля, то есть wp_register_style аргументом, переданным в wp_register_style .

То, что я сказал для css, вполне выполнимо для файлов javascript, где вам нужно использовать wp_register_script вместо wp_register_style и wp_enqueue_script вместо wp_enqueue_style .

Обратите внимание, что даже если отдельные css / js в небольших частях многоразового использования могут быть полезны, он заканчивается тем, что в вашем шаблоне связаны разные URL-адреса css / js, где каждому URL-адресу требуется отдельный HTTP-запрос для загрузки: слишком много css / js на той же странице не подходят для производительности.

Иногда, со страницы на страницу, вы не только хотите изменить стили и / или сценарии, но также хотите изменить разметку html заголовка или нижнего колонтитула.

WordPress легко get_header с использованием аргумента функции get_header и / или get_footer . Фактически, вы можете создать множество разных верхних и нижних колонтитулов, добавить суффикс в файлы. Например, вы можете иметь: header.php , header-single.php , header-special.php

После этого в single.php вместо вызова get_header() вы можете вызвать get_header('single') и загрузить header-single.php вместо header.php (который все еще используется как резервный, если файл header-single.php не найден в теме или в детской теме) ***** .

Этот метод в сочетании с загрузкой условного актива дает возможность глубоко настроить аспект со страницы на страницу в WordPress.


***** Посмотрите на этот вопрос / ответ для более сложной / динамической загрузки файлов заголовков / нижних колонтитулов.