Три способа создания шаблона страниц в WordPress

Три способа создания шаблона страниц в WordPress

В этой статье мы рассмотрим способы создания шаблонов для страниц в WordPress. У каждого метода есть свои плюсы и минусы. Прежде чем начать, давайте разберёмся в значении термина «страница» и его отличии от «поста».

Понимание страниц и постов в WordPress

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

Примеры страниц:

  • О мне
  • Контакты
  • Карта сайта

Страницы не зависят от времени публикации, в то время как посты организованы по дате. Например, эта статья является постом в категории «Codex». Ссылки в верхней части страницы ведут на страницы: Функции, Хуки.

Сравнение страниц и постов

  • Страницы являются иерархическими, то есть могут иметь родительские и дочерние страницы.
  • Посты группируются по категориям и меткам.

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

Создание страницы в WordPress

Часто, когда вам нужно изменить оформление поста, вы создаёте отдельный шаблон страницы. При создании шаблона вы можете полностью изменить внешний вид страницы, например, удалить заголовок, подвал и боковую панель.

Содержание статьи

  • Первый способ: создание шаблона страницы с помощью файла с индивидуальным именем и выбор его в административной панели для конкретной страницы.
  • Второй способ: шаблон страницы по файлу с заданным именем (или иерархия файлов шаблонов).
  • Третий способ: программный подход — шаблон страницы через фильтр «template_include».

Первый способ: создание шаблона страницы с кастомным именем

Это наиболее распространённый метод создания шаблона страницы в WordPress. Вам нужно создать файл с расширением .php (например, tpl_my-page.php) в папке темы и в начале файла добавить комментарий-метаданные, указывающий, что это файл шаблона страницы:

Теперь, создавая или редактируя страницу в административной панели, вы можете выбрать этот шаблон в разделе «Атрибуты страницы».

Выбор шаблона

С версии WordPress 4.7 вы можете создавать такие шаблоны для любого типа постов, добавив следующую строку к комментариям:

/*
Template Name: Мой шаблон страницы
Template Post Type: post, page
*/

Преимущества:

  • Можно применить шаблон многим страницам. Например, вы можете создать шаблон без боковой панели и использовать его на разных страницах.
  • Можете фильтровать страницы по конкретному шаблону.

Недостатки:

  • После создания файла шаблона нужно зайти в административную панель, чтобы выбрать его для страниц, что может быть неудобно.

Как это работает:

Когда вы редактируете или создаёте новую страницу в админке, WordPress ищет все файлы шаблонов, содержащие строку Template Name в комментарии. Все найденные файлы отображаются в меню выбора шаблона в блоке «Атрибуты страницы».

Второй способ: шаблон страницы по специальному имени

Этот метод подразумевает создание файла шаблона с заданным именем в папке темы: page-{slug}.php или page-{ID}.php.

Как это сделать:

Сначала установите слаг страницы (альтернативное имя), используемое в URL, и создайте файл в папке темы с именем, соответствующим вашему слагу. Например, если слаг ваш��й страницы «contacts», создайте файл page-contacts.php и добавьте необходимый код.

Преимущества:

  • Нет необходимости заходить в админку и вручную указывать файл шаблона. Шаблон начинает работать сразу после создания.

Недостатки:

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

Как это работает:

WordPress выбирает, какой файл шаблона использовать, в следующей последовательности:

  1. {any_name}.php (если используется шаблон страницы)
  2. page-{post_slug}.php
  3. page-{post_id}.php
  4. page.php
  5. singular.php
  6. index.php

Третий способ: шаблон страницы через фильтр «template_include»

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

Пример кода:

add_filter( 'template_include', 'my_template' );
function my_template( $template ) {
    // Шаблон для страницы с слагом 'portfolio'
    if( is_page('portfolio') ){
        if ( $new_template = locate_template( array( 'page-portfolio.php' ) ) )
            return $new_template ;
    }

    // Шаблон для категории
    if( is_category( array( 9, 'No category', 'php') ) ){
        return get_stylesheet_directory() . '/tpl_special-cats.php';
    }

    // Шаблон для поста по ID
    global $post;
    if( $post->ID == 12 ){
        return wp_normalize_path( WP_PLUGIN_DIR ) . '/my-plugin/site-template.php';
    }

    return $template;
}

Код необходимо разместить в файле functions.php вашей темы или в плагине.

Преимущества:

  • Можете применять шаблон к любым страницам или группе страниц.

Недостатки:

  • Необходимо писать код.

Как это работает:

Смотрите описание фильтра template_include для более детального понимания.

Теперь вы знаете три способа создания шаблонов страниц в WordPress! Выберите тот, который подходит именно вам, и настраивайте свои страницы под свои нужды.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *