Фильтры заголовков постов в WordPress
Фильтр заголовка поста применяется к его заголовку перед тем, как он будет извлечен или показан.
Заголовок поста обычно отображается с помощью функции the_title()
или извлекается с помощью функции get_the_title()
. Эти функции активируют данный фильтр.
В некоторых случаях, когда используется the_title()
, заголовок может быть удален, если вернуть пустое значение (NULL, FALSE или '') в этом фильтре.
Использование фильтра
Для подключения фильтра используйте следующую строку кода:
add_filter( 'the_title', 'wp_kama_the_title_filter', 10, 2 );
Пример функции фильтра
Вот пример функции, которая подключает фильтр для заголовка поста:
/**
* Функция для фильтра the_title
.
*
* @param string $post_title Заголовок поста.
* @param int $post_id ID поста.
*
* @return string
*/
function wp_kama_the_title_filter( $post_title, $post_id ){
// Здесь можно дополнительно изменить заголовок...
return $post_title; // Возвращаем (изменённый) заголовок поста.
}
Параметры:
$post_title
(string) — заголовок поста.$post_id
(int) — ID поста.
Примеры использования фильтра
Пример 1: Добавление слова "Страница" к заголовкам статических страниц
Этот пример показывает, как добавить слово "Страница" перед заголовком всех статических страниц:
add_filter( 'the_title', 'add_text_to_page_title' );
function add_text_to_page_title( $title ) {
if( is_page() ){
$title = 'Страница: '. $title; // Добавляем "Страница:" к заголовку.
}
return $title; // Возвращаем изменённый заголовок.
}
Результат:
Заголовок всех статических страниц будет выглядеть так: "Страница: Заголовок страницы".
Пример 2: Удаление заголовков в категории "реклама"
Этот пример показывает, как убрать заголовок у постов, которые находятся в категории "реклама":
add_filter( 'the_title', 'suppress_if_blurb', 10, 2 );
function suppress_if_blurb( $title, $id = null ) {
if ( in_category( 'advertise', $id ) ) {
return ''; // Убираем заголовок, возвращая пустую строку.
}
return $title; // Возвращаем оригинальный заголовок.
}
Примечание: В данном примере параметр $id
имеет значение null
по умолчанию. Это сделано для обработки случаев, когда некоторые вызовы функции могут не передавать этот параметр. Эта проблема возникла в версии 3.1 и была исправлена в версии 3.3. Если необходима обратная совместимость с версиями 3.1-3.3, то важно указать значение по умолчанию для $id
, иначе будет возникать PHP-ошибка.
Изменения
- С версии 0.71: Данный фильтр был внедрён.
Где вызывается фильтр
Фильтр the_title
используется в множестве мест внутри WordPress, включая такие функции, как:
get_the_title()
do_trackbacks()
wp_get_archives()
next_post_link()
,previous_post_link()
- Множество других функций и хуков.
Фильтр позволяет удобно управлять тем, как будут отображаться заголовки постов в различных ситуациях. Используйте его для того, чтобы кастомизировать ваш сайт и улучшить взаимодействие с пользователями.