Рассмотрим еще одну важную особенность тем WordPress. Как вы уже успели заметить, некоторые из файлов шаблона (к примеру, header.php) не привязаны к определенным страницам или типам страниц. Когда же они используются? WordPress включает в себя группу функций, выполняющих подключение различных компонентов страницы:
get_header — подключает файл header.php
get_footer — подключает файл footer.php
get_sidebar — подключает файл sidebar.php
get_searchform — подключает файл searchform.php (если указанный файл отсутствует, WordPress подключает стандартную форму)
comments_template — подключает файл comments.php
Подключение различных возможностей в WordPress может производиться другими, более удобными путями. Во-первых, функции, приведенные выше, допускают вызов с произвольным аргументом; к примеру, функция get_header(‘custom’) выполняет подключение файла с именем header-custom.php. Во-вторых, для подключения произвольных файлов можно использовать функцию get_template_part(‘partname’), где partname.php — имя подключаемого шаблона.
Некоторые из читателей, разбирающиеся в PHP, могут задать вопрос, почему WordPress определяет собственные функции вместо того, чтобы использовать стандартный метод PHP — include. Ответ на данный вопрос довольно прост: потому что get_functions обладает встроенной защитой от ввода неверных команд. Предположим, что ваш шаблон нуждается в файле, названном footer-foobar.php. Вызов данного файла вы определили следующим образом:
get_footer('foobar');
Теперь предположим, что какой-либо неаккуратный пользователь случайно удалил файл footer-foobar.php. Если бы вы использовали include, то каждая страница, вызывающая данный файл, выдала бы несколько сообщений об ошибке, которые были бы видны каждому из пользователей. В случае использования функции get_footer, WordPress сначала проверяет наличие файла footer-foobar.php, и, если такого не было обнаружено, то осуществляет загрузку файла footer.php. Если же и footer.php будет отсутствовать, WordPress попросту ничего не выведет на экран.
Если вы все равно хотите использовать старый добрый метод include, в WordPress имеются константы STYLESHEETPATH и TEMPLATEPATH, предназначенные для работы с регулярными операторами включения. Константа TEMPLATEPATH используется для работы с автономными темами, а константа STYLESHEETPATH — для работы с дочерними темами. Пример:
include(STYLESHEETPATH . '/extrastuff/somefile.php');
Изменение футера
Следующий шаг редактирования домашней страницы заключается в изменении футера. Нам необходимо, чтобы в нем был отображен список всех страниц верхнего уровня блога. Мы знаем, что get_footer выполняет поиск файла, имеющего имя footer.php. Для того, чтобы вызвать собственный файл футера, необходимо отыскать следующую конструкцию в home.php:
// calling footer.php get_footer();
и заменить ее на:
// calling footer.php get_footer('homepage');
Тем самым мы переопределим стандартный вид футера для главной страницы. Однако, этим дело не ограничивается. Теперь нам надо создать файл footer-homepage.php и добавить в него некоторый код, который может иметь, к примеру, следующий вид:
</div><!-- #main --><?php// action hook for placing content above the footer thematic_abovefooter();?> <div id="footer"> <?php // action hook creating the footer thematic_footer(); ?> </div><!-- #footer --> <?php // action hook for placing content below the footer thematic_belowfooter(); if (apply_filters('thematic_close_wrapper', true)) { echo '</div><!-- #wrapper .hfeed -->'; } <?php // calling WordPress's footer action hook wp_footer(); // action hook for placing content before closing the BODY tag thematic_after(); ?> </body> </html>
На 13 строке появляется thematic_footer: он управляет отображением текста в футере, который можно задать в панели настроек Thematic. Подробнее о создании произвольных панелей настроек мы сможем узнать из последующих разделов.
Для того, чтобы вставить список страниц, необходимо использовать функцию wp_list_pages. Мы могли бы сразу добавить ее в наш новый файл футера и она бы отлично работала, но мы пойдем несколько иным путем. Спрячем объявление wp_list_pages в файл functions.php. Указанный файл выступает вместилищем всей функциональности, которую вы добавляете к своей дочерней теме. Сохранив генератор списка страниц в файле functions.php, мы можем быть уверены в том, что если нам понадобится вызвать его в других частях шаблона, мы сможем это сделать легко и быстро. Откройте файл functions.php и добавьте к нему свою первую пользовательскую функцию:
<?php function wicked_footer_pagelinks() { echo '<ul id="simplepages">'; wp_list_pages('depth=1&sort_column=menu_order&title_li='); echo '</ul>'; } ?>
Мы используем здесь функцию echo PHP, позволяющую обернуть список страниц элементом ul с некоторым идентификатором id, что в дальнейшем облегчает стилизацию списка. В функцию wp_list_pages мы передаем следующие атрибуты: depth — требуемая глубина страниц (в нашем случае 1, т.е. страницы верхнего уровня), sort_column — тип сортировки страниц (menu_order — сортировка, аналогичная той, которая определена в панели администратора), title_li — заголовок над списком (пустая строка — отсутствие заголовка). Все параметры описаны в соответствующем разделе кодекса WordPress.
Теперь, когда мы создали нашу функцию, вызвать ее из футера можно следующим образом:
<div id="footer"> <?php wicked_footer_pagelinks(); // action hook creating the footer thematic_footer(); ?> </div><!-- #footer -->
Результат можно будет увидеть в браузере. Для того, чтобы список страниц имел более интересное представление, к нему можно добавить стили CSS. Вот лишь некоторые из полезных стилей:
body.home ul#simplepages { width: 940px; margin: 0 auto; }body.home ul#simplepages li { list-style-type: none; display: inline; margin-right: 30px; }
В следующем разделе мы рассмотрим еще один мощный механизм WordPress, позволяющий решать разнообразные задачи: хуки и фильтры.
Здравствуйте! А подскажите можно ли, и как, если можно, подключить…
У меня есть папка с текстами в формате html, один файл- одна статья. Как можно подключить эти тексты в вордпресс, чтобы выводились статьи на сайте. ( а так нужно либо перекопировать, либо вручную добавлять-долго слишком). Текстов много очень. Подскажите можно ли сделать так чтобы был вывод статей на сайте и как это сделать? Я не силен в языках, так что сам не знаю, а в интернете не нашел как то. может не там искал. Если можно ответьте на мыло мое rezident-81 собака .ru
Заранее спасибо Вам!