Как изменить заголовок на странице WordPress?

Контекст: WordPress 5.4.5, Yoast 3.7.1

Я разработчик плагинов, который имеет доступ к сайту клиента. На сайте установлен Yoast 3.7.1, и мне интересно, насколько это важно, потому что независимо от того, что я делаю, я не могу изменить страницу 404 title,

Теперь на других страницах StackOverflow, где были заданы похожие вопросы (Вот, Вот а также Вот например). Ответившие спросили, header.php правильно встраивает вызов wp_title(), Вот что в текущей теме header.php в таком случае:

    <title><?php wp_title( '|', true, 'right' ); ?></title>

Интересно, по моему 404.php страница, wp_get_document_title() говорит мне, что название документа Page not found - XXXX хотя wp_title Вызов выше определяет разделитель как |, Переписывание заголовков в Yoast было отключено, поэтому я не совсем уверен, откуда взялась эта черта.

Мой плагин выполняет вызов REST и извлекает контент с удаленного сайта для включения в страницу. Часть этого контента — это текст, который будет использоваться в title,

На предыдущих клиентских сайтах я смог сделать следующее:

add_filter('wp_title', 'change_404_title');
function change_404_title($title) {
if (is_404())
{
global $plugin_title;
if (!empty($plugin_title))
{
$title = $plugin_title;
}
}
return $title;
}

Однако на этом сайте это не работает.

Я попытался, основываясь на используемой версии WordPress, подключив pre_get_document_title фильтр, а именно

add_filter('pre_get_document_title', 'change_404_title');

но опять безрезультатно. Я сейчас читаю на Yoast …

3

Решение

wp_title не рекомендуется с версии 4.4. Таким образом, мы должны использовать новый фильтр pre_get_document_title, Ваш код выглядит хорошо, но я запутался global $plugin_title, Я бы лучше попросил вас попробовать это первым

add_filter('pre_get_document_title', 'change_404_title');
function change_404_title($title) {
if (is_404()) {
return 'My Custom Title';
}
return $title;
}

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

add_filter('pre_get_document_title', 'change_404_title', 50);
8

Другие решения

Добавьте это в ваши functions.php

function custom_wp_title($title) {

if ( is_404() ) {
$title = 'Custom 404 Title';
}
return $title;
}
add_filter( 'wp_title', 'custom_wp_title', 10, 2 );

10 — изменение приоритета для замены других плагинов, таких как SEO

0

По вопросам рекламы [email protected]