Файл functions.php

Последний файл шаблона темы, которого мы пока еще не коснулись, это functions.php. Многим он представляется довольно сложным и запутанным, в результате чего его часто выпускают из рассмотрения. Стоит сразу заметить, что не все темы поддерживают использование файла functions.php, однако те, что поддерживают, обладают повышенными функциональными возможностями. В файле functions.php обычно размещаются функции, вызываемые как при отображении сайта, так и при работе с панелью администратора. Небольшой пример: разместим следующий участок кода в файле functions.php:

<?php
function $hellomate() {
echo 'Hello mate, how are you doing?';
}
?>

Если теперь мы вызовем функцию в каком-либо из файлов темы, то получим на экран текст, содержащийся в echo. Вызов функции проводится следующим образом:

<?php hellomate(); ?>

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

Изменение ширины изображений

При помощи файла functions.php можно изменять значения крупного размера для загружаемых изображений. Делается это следующим образом:

$content_width = 580;

Здесь 580 – это значение ширины в пикселях. Меняя это число, можно подогнать размеры изображений под используемую тему.

Вставка рекламных элементов

Рекламные элементы обычно вставляются после записей, заставляя посетителя выполнить какие-либо действия (к примеру, подписаться на RSS). Задать рекламные элементы можно как при помощи файлов шаблона темы, так и при помощи functions.php.

Допустим, мы хотим увеличить количество RSS-подписчиков сайта. С этой целью определим блок div с классом promotion – в этом блоке разместим заголовок h4, призывающий посетителей следить за обновлениями ресурса.

div.promotion { background: #eee; border: 1px solid #bbb; padding: 10px; }
div.promotion h4 { color: #f00; font-size: 14px; margin: 0 0 5px 0; padding: 0; }
div.promotion p { font-size: 12px; color: #444; margin-bottom: 0; }

Следующий участок кода нужно будет разместить в конце каждой записи:

<div>
<h4>Never miss a beat!</h4>
<p>Our smashing <a href="http://notesblog.com/feed/">RSS feed</a> keeps you up-to-date!</p>
</div>

Как это осуществить без кардинальной переработки всего шаблона? Очень просто! Воспользоваться файлом functions.php. Добавим в него следующий код:

function Promotion($content) {
if(!is_feed() && !is_home()) {
$content.= '<div>';
$content.= '<h4>Never miss a beat!</h4>';
$content.= '<p>Our smashing <a href="http://notesblog.com/feed/">RSS feed</a> keeps
you up-to-date!</p>';
$content.= '</div>';
}
return $content;
}
add_filter ('the_content', 'Promotion');

Функция создает переменную под названием Promotion, в которой будет храниться необходимый код для добавления после каждой записи. Add_filter позволяет вставить этот код сразу после тега шаблона the_content.

Наличие определенного набора функций позволяет значительно облегчить управление сайтом; на сегодняшний день подавляющее большинство тем поддерживают файл functions.php.