Добрый день всем на страницах wmbn.ru! Вот и подошла к концу серия постов Структура шаблонов WordPress, где мы постарались рассмотреть структуру почти всех составляющих файлов любого шаблона, изучить их принцип работы и структуру кода, а также немного его подредактировать. Сегодня, в завершающем посте, рассмотрим оставшиеся 4 файла, которые так же составляет неотъемлемую часть любого шаблона для WordPress — результаты поиска (search.php), форма поиска (searchform.php), функции темы (functions.php) и шаблон страницы (page.php). Так же будут изучены коды файлов, их принцип работы, как и за что отвечают.

Редактирование шаблона WordPress

И после того, как разберем структуру этих трех составляющих файлов шаблона WordPress, на примере полностью отредактируем шаблон WordPress Dum Dum до его неузнаваемости, используя все приемы, которые есть и представлены в моем блоге. Редактирование шаблона, для многих, может показаться сложной часть цикла постов о структуре, но все же, это очень интересное занятие, особенно когда дело дойдет до конца и в скором времени получится свой уникальный шаблон (если его так можно назвать), который в меньшей вероятности встретится на другом сайте.

Стандартная форма поиска блога на CMS WordPress

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

Форма поиска стандартного шаблона на WordPress

Код простой, поэтому разобрать его будет тоже не сложно, но он содержит некоторые элементы, которые могут быть непонятны:

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">

Создается простая форма, для которой задан метод передачи Ge и задается идентификатор ID — searchformt, а страница в action уже генерируется с помощью PHP кода.

<div><input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />

Вот здесь как раз создается блок div, для которого можно присвоить свой стиль, а если быть конкретнее, то для текстового блока куда будут вбиваться поисковые запросы. Для формы поиска уже задано имя name=»s» — имя должно быть уникальным, так как данный запрос будет обрабатываться с помощью PHP скрипта, для которого имя переменной, в нашем случае текстового блока поиска и введенного запроса, является единственной для формы поиска ибо могут возникнуть проблемы и ошибки в работе кода.

<input type="submit" id="searchsubmit" value="Искать!" />
</div>
</form>

Чтобы форма поиска выглядела подобающе, к ней можно (нужно) приставить кнопку для выполнения поискового запроса. Чтобы установить кнопку необходимо указать тип вставки объекта submit — когда только начинал учить PHP, в книге говорилось, что данная кнопка нужна для выполнения любого запроса, который создан с помощью PHP кода. Осталось кнопке приписать название Value и все, стандартная форма поиска WordPress готова. Только в конце нужно не забыть поставить все закрывающие теги.

Виджет поиска по сайту на  WordPress

Но я уже упоминал о том, насколько плоха данная система поиска, которая используется в шаблонах WordPress, поэтому ее все же лучше заменить на более функциональную от Google или Яндекс. Так же форму поиска можно установить на сайдбар, используя виджет поиск, который работает по принципу стандартного поискового движка на WordPress, либо виджет для вставки текстовой информации, включая код, который получите при настойке формы поиска.

Файл search.php и page.php — вывод результатов поиска. Изменение page.php для вывода страницы

Файл шаблона search.php по своей структуре напоминает тот же page.php, но все таки в них различия есть. Начну со структуры файла search.php (Результаты поиска), который выводит на страницу результаты поискового запроса, введенного в форму. Сначала, как положено загружается шапка сайта:

<?php get_header(); ?>

Далее создается блок с выводом записей по тому виду, что присвоено для блока. Затем начинается проверка наличия постов и создание цикла, с помощью которого записи будут выводится. Структура запроса такова — пока есть наличие записей (скорее всего по критериям отбора), то выводить их на страницу последовательном порядке:

<div id="content" class="narrowcolumn">
<?php if (have_posts()) :  ?>
<?php $i=0; while (have_posts()) : the_post(); $i++; ?>

Затем посты формируются на странице, для них создаются ссылки и присваиваются категории, указываются даты создания постов и количество к ним комментариев, закрывается цикл while. Но что, если нет результатов, которые соответствуют запросу, то в данном случае в структуре файла шаблона выводится надпись и подключается форма поиска:

<?php else : ?>
<h2 class="center">Ничего не найдено или любой другой текст, который вы присвоите</h2>
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
<?php endif; ?>

Давайте теперь разберемся со структурой файла page.php (Шаблон страницы). Про него ничего сказать не могу, разве что он создает структуру страницы шаблона в WordPress, причем не всю, а только часть.

Ничего не найдено на сайте

Принцип, как я уже сказал тот же, разве что загрузка постов происходит по другому принципу:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

А затем схожая структура — блоки для записей, создание ссылок и в конце переходы по страницам. Бывают такие случаи, когда в структуре шаблона отсутствует файл search.php, тогда можно создать свой файл, добавив его в структуру шаблона. Если следовать Кодексу WordPress, то для этого необходимо создать копию файла page.php, назвав ее searchpage.php (search.php использвоать нельзя, так как она уже зарезервирована системой — WordPress). Файл можно создать, используя FTP-менеджер Filezilla или средства панели управления хостингом. После чего удалите весь код в файле, написав в него следующее:

<?php
/*
Template Name: Search Page
*/
?>

<?php get_search_form(); ?>

Затем нужно создать страницу, в которой будут предоставлены результаты поиска — для этого в меню Страницы выберите пункт Добавить новую. Название для страницы подберите сами, затем выберите шаблон и больше ничего не меняйте. После этого можно изменять стиль и структуру страницы с помощью Css, указав при этом id страницы.

Файл functions.php — функции шаблона WordPress и работа с файлом. Создание своей функции кода

И последний завершающий файл — functions.php (Функции шаблона). Структуру данного файла рассматривать не стоит, лучше всего рассмотреть его использование. В файле functions.php содержатся функции, которые можно использовать на сайте, не прописывая их и не меняя при этом структуру любого файла, входящего в состав шаблона WordPress. Т.е. прописав вызов функции в любом из файлов шаблона, можно получить результат ее выполнения, при этом не нагромождая код.

Данный подход очень удобен, т.к. нет необходимости редактировать каждый файл, если вдруг нужно изменить функцию — достаточно изменить ее в файле functions.php, но при этом учитывая название редактируемой функции, и если ее поменять, то старый вызов уже работать не будет. Однако лезть туда, чтобы создать свою функцию, для примера вывод надписи в конце каждого поста, лучше не стоит, ибо обретете больше проблем, чем решения данного вопроса.

Но если есть другие причины, по которым данный фал необходимо отредактировать, добавив в его структуру некоторые изменения, то данный файл будет очень кстати, в особенности если нужно сделать так, чтобы функция повторялась в каждой странице. Для примера сделаем так, чтобы в конце каждой записи повторялась надпись «Спасибо, что Вы на сайте!». Первое, открываем файл functions.php с помощью редактора WordPress или же любого другого редактора, который не испортит кодировку текста. Затем внутрь файла копируем следующий код:

function thanks()
{
	echo 'Спасибо, что Вы на сайте!';
}

Который будет вызываться в каждой записи, используя следующий код:

<?php thanks(); ?>

После того, как сохраните все изменения в файле functions.php, при этом не меняя структуры (иначе ошибки не миновать) и single.php, функция будет вызвана.

Структура файла functions.php

Что же касается структуры, внимательно изучите файл и посмотрите в каком виде (структуре) записана каждая функция, и «скопируйте» ее в свою, чтобы при сохранении не возникало ошибок — обычно это текст с кодом ошибки или белый экран. Все это можно посмотреть в логах сайта на хостинге в разделе Статистика.

Немного о редактировании шаблонов в WordPress

Немного хотелось бы поговорить о редактировании шаблонов для WordPress. Большинство платных и бесплатных шаблонов схожи по своей структуре и наличию файлов, некоторые вообще идентичны, разве что имеют отличия в прилагаемых изображениях. Сходства шаблонов:

  • Наличие повторяющихся файлов, составляющих любой  шаблон для блога на WordPress — это неудивительно, ибо как тогда будет тема взаимодействовать с движком, если нет определенных стандартов и вызовов функций, с помощью которых блог будет функционировать;
  • Структура файлов (кода) — это опять же из темы функций и вызовов. Нет индивидуального подхода к каждому шаблону, все они взаимодействуют с WordPress средствами вызова какой-либо функции или обращению к базе данных. Представьте, что не было бы таких запросов, типа get_header, query_posts и им подобных, шаблон тогда представлял из себя обычную HTML верстку. Но в этом случае пришлось бы самому прописывать все вызовы, знать их назначение и где правильно употребить. Это очень похоже на случай с движком ModX, для которого в принципе нет шаблонов, как для WordPress или Drupal. Однако продуманный механизм позволяет прикрутить абсолютно любой HTML шаблон к движку, включая пользовательский;
  • Структура страниц — блог он и в Африке блог, страницы оформлены в большинстве случаев одинаково. Обязательно есть шапка сайта (header), основной контент и сайдбар (боковая колонка), и подвал сайта (footer). Конечно есть исключения, в котором внешний вид и назначение шаблона может кардинально отличаться от общей массы, но по файлам они все равно схожи;

Основные различия:

  • Используемые изображения — шаблон может либо иметь их, либо нет, но в большинстве случаев изображения в шаблоне имеются. Верстка страницы может быть одинаковая, но изображения будут обязательно разные, ибо какой смысл редактировать шаблон и выставлять его в паблик, говоря что он авторский. Изображения обычно используются в качестве фона для сайта, его составляющих (блоки в сайдбаре, подвале или шапке), иконки же в качестве логотипа шаблона (если они используются под свободной лицензией), каких-либо элементов. Иконки тоже используются в редактировании шаблона, но в основном, чтобы выделить какие-либо мелкие детали;
  • Функционал - совокупность настроек шаблона для администратора и пользователя (наличие функций, улучшающих юзабилити сайта). С настройками шаблона все ясно — имеются свои поля для изменения каких-либо частей темы, типа логотипа, изменения файла style.css прямо из панели администратора, изменение внешнего вида не только цветами, но и вообще общим представлением (структурой к примеру). Юзабилити — ну это мелкие части в шаблоне, типа выпадающего списка в рубрике, где дочерние спрятаны в основной. Или же это вкладки, карусель, которые могут присутствовать при установке соответствующего плагина или присутствовать сразу в шаблоне;
  • Виджеты — не обязательно они могут помещаться в сайдбар сайта, можно встретить и такие шаблоны, структура которых позволяет установить дополнительные блоки  и в подвал сайта. Жаль, но нет такого гибкого распределения вывода блоков, как в Drupal, тогда бы сайты кардинально различались друг от друга;

Вот и все, серия постов закончена.

Все записи по теме Редактирование и структура шаблонов WordPress вы можете прочесть в списке:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>