Вордпресс предоставляет, как минимум три универсальных способа создания шаблонов. Каждый выбирает удобный себе способ. Вкратце первый вариант предполагает, что Вы заполняете страницы уникальными шаблонами, а записи подвержены стандартному шаблону. Второй – зная уникальный слаг или ID – задаем свой вывод данных. И, конечно, внесение изменений в function.php – очень часто используется, как при написании тем так и плагинов. Главный из минусов – ошибка значит сайт недееспособен. Более подробно процесс создания описан на Каме.
Шаблон страниц

Страницы и записи, исходя из кодекса понимаются по-разному. Первые это уникальные интернет-страницы, которыми заполнена меньшая часть сайта. Например, контакты, автор, проезд, о себе, о сайте. Для каждой можно разработать уникальный шаблон и вставлять в вордпресс, используя соответсвующее меню.
Плюсы: создание своего шаблона для уникальных интернет-страниц; простота в реализации; удобство в пост-программировании другими администраторами.
Минусы: шаблон распространяется только на страницы, существуют темы, где рубрик типа “страница” много; при этом необходимо заходить в админпанель и каждому файлу устанавливать требуемый шаблон (много страниц – много времени).
Реализация. Для создания необходимо в директории активной темы создать php-файл. Рекомендую называть либо page-NAME_TEMPLATE.php или template-NAME_TEMPLATE.php. В принципе, вордпресс проверяет наличие
|
<?php /** * Template Name: Мой шаблон страницы */ ?> <!-- Здесь html/php код шаблона --> |
в начале файла, его имя неважно для CMS. Отмечу, что название после Template Name будет отображаться в меню страниц.
Шаблон по иерархии файлов
Я бы назвал такой способ “шаблон на коленке”. Используя иерархию файлов можно создавать шаблон для уникальных интернет-страниц. Например, нам хочется какую-то рубрику отображать по-другому. Для этого нужно использовать уникальный слаг или ID. Название файла должно быть либо category-{слаг}.php или category-{ID}.php.
Плюсы: шаблон начинает моментально работать;
Минусы: реализация такого способа завязана на именно этот ресурс, на другом нужно либо создавать такой же слаг либо менять нужный номер ID; переносимость усложнена; разбор шаблона усложнена;
Шаблон, используя template_include
Этот способ наиболее сложный, однако отрывает возможность изменять любую страницу, группу страниц, часть сайта по какому-то принципу. Он используется при написании плагинов.
Плюсы: можно изменить любую страницу сайта; удобство реализации и понимания.
Минусы: сложность; ошибка чревата для всего сайта.
Реализация: изменяя fuctions.php можно добавить любой элемент. Пример взят из камы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
// фильтр передает переменную $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; } |
Конечно выбирать Вам.