Какими способами можно создать шаблоны страниц в вордпресс?

Решено

Я где то читал что можно создавать свои шаблоны для страниц. И к тому же есть разные способы. Вот только не могу найти какие есть способы. Можете что нибудь подсказать?
Просто в моей теме мне нужны разные оформления страниц не только css но разные функциональные блоки.

Добавить Комментарий
Ответ

Первый способ, это создать новый файл, вставить нужный вам код(вместе с шапкой, контентом, футером, в общем полностью страницу) и в самом верху добавить:

 /*
 Template Name: Moy_shablon
 */
 

Второй способ это правильно назвать вашу страницу(то есть сам файл с кодом). Например:
page-{слаг-страницы}.php или page-{ID-страницы}.php

Третий способ, самый сложный:

 // фильтр передает переменную $template - путь до файла шаблона. Изменяя этот путь мы изменяем файл шаблона.
 add_filter('template_include', 'my_template');
// функция фильтрации
 function my_template( $template ) {
# аналог второго способа
 // если это страница со слагом portfolio, используем файл шаблона page-portfolio.php
 // используем условный тег is_page()
 if( is_page('portfolio') ){
 if ( $new_template = locate_template( array( 'page-portfolio.php' ) ) )
 return $new_template ;
 }
# шаблон для группы рубрик
 // этот пример будет использовать файл из папки темы tpl_special-cats.php,
 // как шаблон для рубрик с ID 9, названием "Без рубрики" и слагом "php"
 if( is_category( array( 9, 'Без рубрики', 'php') ) ){
 return get_stylesheet_directory() . '/tpl_special-cats.php';
 }
# шаблон для записи по ID
 // файл шаблона расположен в папке плагина /my-plugin/site-template.php
 global $post;
 if( $post->ID == 12 ){
 return wp_normalize_path( WP_PLUGIN_DIR ) . '/my-plugin/site-template.php';
 }
# шаблон для страниц произвольного типа "book"
 // предполагается, что файл шаблона book-tpl.php лежит в папке темы
 global $post;
 if( $post->post_type == 'book' ){
 return get_stylesheet_directory() . '/book-tpl.php';
 }
return $template;
}
 

Пример взят с wp-kama.ru

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.