Подключение файлов темы 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мотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб