Подключение файлов

Дата публикации:Ноябрь 25, 2010

Рассмотрим еще одну важную особенность тем 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, позволяющий решать разнообразные задачи: хуки и фильтры.

Поделиться

Один комментарий

  1. Здравствуйте! А подскажите можно ли, и как, если можно, подключить…
    У меня есть папка с текстами в формате html, один файл- одна статья. Как можно подключить эти тексты в вордпресс, чтобы выводились статьи на сайте. ( а так нужно либо перекопировать, либо вручную добавлять-долго слишком). Текстов много очень. Подскажите можно ли сделать так чтобы был вывод статей на сайте и как это сделать? Я не силен в языках, так что сам не знаю, а в интернете не нашел как то. может не там искал. Если можно ответьте на мыло мое rezident-81 собака .ru
    Заранее спасибо Вам!

Оставить комментарий

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

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.