Как создать пользовательский шаблон (custom template) в WordPress?

Wordpress, Вопросы и ответы
13 февраля 2012

Вопрос

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


Ответ №1

Как известно, главным файлом любой темы является файл «index.php», именно он и выводит главную страницу Вашего сайта, начиная от шапки сайта и заканчивая подвалом. Большинство тем написаны таким образом, что index.php подключает эти части из отдельных файлов (header.php, footer.php, comments.php и т.п.).

Если запрошена какая-то страница (не запись), то обычно управление на себя берёт скрипт в «page.php», который тоже подключает упомянуты в предыдущем пункте части сайта. Этот файл присутствует почти во всех темах, и он отвечает за вывод страницы. Однако, в некоторых случаях этого файла может и не быть, если тема слишком простая. Тогда «index.php» выводит и главную страницу, и категории, и обычные страницы. Но это, скорее, исключение.

Можно сказать, что «page.php» - дефолтный шаблон любой страницы. В WordPress реализована возможность писать свои свои собственные пользовательские шаблоны, которые будут перенимать на себя управление вместо «page.php». Для этого просто создайте файл с любым именем и расширением php, пусть это будет «mypage.php» и поместите в него следующий код:

<php
// Template Name: My template name
?>

«My template name» - это имя шаблона страницы. Затем перейдите в меню добавления новой страницы, и справа в меню «Атрибуты страницы - Шаблон» Вы увидите возможность выбрать этот шаблон.

Теперь при запросе этой страницы (адрес которой отобразиться поле «Постоянная ссылка»), будет выводиться белый лист. Ни меню, ни выджетов, ни текста страницы не будет, даже если Вы напишете что-то в заголовке или теле страницы. Так происходит потому, что страницу обрабатывает не «page.php», а «mypage.php», который пока что пустой.

Для вывода содержимого используется the_content(), для заголовка - the_title(). Но это уже другая тема. Не всегда надо выводить контент страницы. Иногда надо вывести результат собственного php-кода. Или же просто произвольный html-код, который будет никак не связан с другим кодом Вашего блога.

Нет комментариев

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


(обязательно)