the_title();
Коротко о том, как использовать фильтры в WordPress
the_excerpt();
Т.к. фильтры в вордпрессе появились довольно давно, написано про них уже немало. Но статьи на эту тему обычно такие длинные, что к концу забываешь ее начало. Мне фильтры нужны периодически, поэтому каждый раз разбираться с нуля - не с руки. Так что попробую сделать небольшую схематическую шпаргалку на эту тему, а дальше - гугл в помощь.
Итак, фильтры нужны, если необходимо исправить какую-то информацию, отдаваемую движком. Лезть в код движка - последнее дело, при первом же обновлении все затрется. А фильтр написал один раз, поместил в файл functions.php своей темы, и спишь спокойно.
Ну вот, например, мне понадобилось изменить ссылку, которую отдает дефолтный виджет Recent Comments (Последние комментарии). Он ставит на статью ссылку вида сайт/запись/#id_комментария - а я не хочу по каким-то причинам это id_комментария.
Итак, шаг 1. Лезем в код виджета (дефолтные виджеты располагаются в файле wp_includes/default_widgets.php. Находим там строчку, отвечающую за ссылку на комментарий:
get_comment_link($comment->comment_ID).
Шаг 2. Ищем эту самую функцию get_comment_link - и в конце ее видим строчку
return apply_filters( 'get_comment_link', $link . '#comment-' . $comment->comment_ID, $comment, $args );
Это оно! Именно здесь движок вордпресса позволяет нам что-то сделать с возвращаемым функцией значением.
Шаг 3. Немедленно этим пользуемся: в файл темы functions.php запишем:
add_filter('get_comment_link', 'my_own_comment_link');
Шаг 4. Пишем функцию, которая будет подсовывать новое значение виджету:
function my_own_comment_link($link){
return strstr($link,'#',true); //берет строку вида "раздва/три/#четыре" и отсекает весь хвост, который начинается со знака "#"
}
Ну вот и все, подробности в Кодексе. Надеюсь, в следующий раз мне не придется снова тратить три часа, чтобы вникнуть во все это.

(4.75 out of 5)
(голосов: 38)