Подключение файлов темы WordPress

Легче всего наводить порядок в коде проекта путём разделения его на файлы. В этой статье мы рассмотрим, как в WordPress выделить части страницы в подключаемые файлы.

Шапка и подвал сайта

Шапка и подвал сайта зачастую имеют одинаковое содержание на всех страницах. Поэтому если вынести их содержание в отдельный подключаемый файл, то размер кода в других файлах шаблона заметно сократится. Давайте проделаем это. Для начала взглянем на пример исполняемого файла шаблона index.php:
<!DOCTYPE html>
<html>
   <head>
      <meta charset="<?php bloginfo('charset'); ?>">
      <title><?php echo wp_get_document_title(); ?></title>
      <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" />
      <?php wp_head(); ?>
   </head>
   <body>
      <header class="header">
         <h1><?php bloginfo( 'name' ); ?></h1>
         <h2><?php bloginfo( 'description' ); ?></h2>
      </header>
      <div class="content">
         <!-- главный цикл WordPress -->
      </div>
      <footer class="footer">
         Автор сайта - MouseDC.ru
      </footer>
      <?php wp_footer(); ?>
   </body>
</html>
В шаблоне есть шапка и подвал (header и footer), который не меняются от страницы к странице. Грубо говоря, это участки кода до и после главного цикла WordPress. Давайте создадим файлы header.php и footer.php в корневой папке темы "/wp-content/themes/название_темы". Затем поместим в эти файлы следующее содержание.

Содержание header.php
<!DOCTYPE html>
<html>
   <head>
      <meta charset="<?php bloginfo('charset'); ?>">
      <title><?php echo wp_get_document_title(); ?></title>
      <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" />
      <?php wp_head(); ?>
   </head>
   <body>
      <header class="header">
         <h1><?php bloginfo( 'name' ); ?></h1>
         <h2><?php bloginfo( 'description' ); ?></h2>
      </header>
Содержание footer.php
      <footer class="footer">
         Автор сайта - MouseDC.ru
      </footer>
      <?php wp_footer(); ?>
   </body>
</html>
Теперь необходимо обрезать эти части из файла index.php, а на их место поставить функции для подключения созданных файлов get_header() и get_footer(). Тогда файл index.php будет выглядеть так:
<?php get_header(); ?>
   <div class="content">
      <!-- главный цикл WordPress -->
   </div>
<?php get_footer(); ?>
Функции get_header() и get_footer() могут принимать до двух параметров: get_header('название_файла', array(...) ) (параметры у двух функций аналогичные).

Первый параметр отвечает за название подключаемого файла. Если параметр не указан (либо равен пустой строке или false), то будет использоваться файл header.php. Иначе будет использован файл header-название_файла.php.

Второй параметр - это массив передаваемых аргументов. Они будут доступны в подключаемом файле в переменной $args.

Комментарии и форма поиска

Как видно из предыдущего примера, если вынести участки повторяющегося кода в отдельные файлы, то разрабатывать проект становится легче. Поэтому давайте не будем останавливаться и продолжив выносить в файлы ещё и комментарии к записям и форму поиска.

Аналогично функциям для подключения футера и хидера, комментарии подключаются функцией comments_template(). Подключаемый файл - comments.php. Если подключаемого файла не существует, то будет подключен стандартный шаблон для вывода комментариев, который находится по адресу /wp-includes/theme-compat/comments.php.

Функции можно передать два параметра: comments_template('название_файла', $separate_comments). Первый параметр - это стрка с названием подключаемого файла. По умолчанию его значение равно comments.php. Второй параметр - это логическое значение true или false. По умолчанию оно равно false, что заставляет не разделять комментарии по типу (комменты, пинги, трэкбэки).

Точто такая же логика подключения фалов действует и для формы поиска по записям. За неё отвечает файл searchform.php, который подключается функцией get_search_form(). Простейшее содержимое подключаемого файла поиска выглядит так:
<form role="search" method="get" id="searchform" action="<?php echo home_url('/') ?>" >
   <input type="text" value="<?php echo get_search_query() ?>" name="s"/>
   <input type="submit" id="searchsubmit" value="найти" />
</form>
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: