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

12 окт. 2011 г., 15:00:50
Просмотры: 21.9K
Голосов: 10

Я пробовал много методов после поиска в интернете, но не могу убрать "Nothing Found" из заголовка моей страницы 404. Как это сделать, пожалуйста, помогите.

Я даже использовал это в заголовке моей страницы 404: if( is_404() ) echo '404 сообщение здесь | '; else wp_title( '|', true, 'right' );

Я также удалил функцию php title и добавил свой собственный заголовок, но он все равно не меняется, почему?

0
Все ответы на вопрос 3
3
17

Я бы использовал фильтр-хук wp_title:

function theme_slug_filter_wp_title( $title ) {
    if ( is_404() ) {
        $title = 'ДОБАВЬТЕ ТЕКСТ ЗАГОЛОВКА ДЛЯ 404 ЗДЕСЬ';
    }
    // Здесь можно выполнить другую фильтрацию или
    // просто вернуть $title
    return $title;
}
// Подключаемся к фильтр-хуку wp_title
add_filter( 'wp_title', 'theme_slug_filter_wp_title' );

Это будет хорошо работать с другими плагинами (например, SEO-плагинами) и будет относительно совместимо в будущем (изменения в заголовке документа появятся скоро).

РЕДАКТИРОВАНИЕ

Если вам нужно переопределить фильтр SEO-плагина, вероятно, вам просто нужно добавить более низкий приоритет в ваш вызов add_filter(); например, следующим образом:

add_filter( 'wp_title', 'theme_slug_filter_wp_title', 11 );

Значение по умолчанию — 10. Меньшие числа выполняются раньше (т.е. с более высоким приоритетом), а большие числа выполняются позже (т.е. с более низким приоритетом). Таким образом, если ваш SEO-плагин использует приоритет по умолчанию (т.е. 10), просто используйте число 11 или больше.

12 окт. 2011 г. 16:19:54
Комментарии

Спасибо, это не менялось из-за моего SEO-плагина, но спасибо за ответ :) Теперь у меня есть еще одна проблема моя страница 404 выдает заголовок с кодом 404, как я могу это изменить?

realcoder realcoder
12 окт. 2011 г. 16:57:12

SEO-плагин почти наверняка использует фильтр wp_title. Если вам нужно его переопределить, добавьте приоритет к вашему вызову add_filter(). См. обновление ответа.

Chip Bennett Chip Bennett
12 окт. 2011 г. 18:56:37

Добавление более высокого приоритета сработало для меня.

Alex Alex
21 апр. 2017 г. 17:44:26
1

WordPress 4.4 и выше

Принятый ответ больше не работает, так как wp_title устарел в WordPress 4.4 и выше (см. здесь). Теперь мы должны использовать фильтр document_title_parts.

Вот переписанный принятый ответ с использованием document_title_parts.

function theme_slug_filter_wp_title( $title_parts ) {
    // Проверяем, является ли текущая страница 404 ошибкой
    if ( is_404() ) {
        $title_parts['title'] = 'ДОБАВЬТЕ ТЕКСТ ЗАГОЛОВКА ДЛЯ 404 ЗДЕСЬ';
    }

    return $title_parts;
} 

// Подключаем фильтр к document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );
20 дек. 2017 г. 18:15:09
Комментарии

Спасибо, вы не в курсе, изменили ли что-то в WP 6.4? У меня не получается заставить это работать. Этот код нужно вставлять в functions.php, верно?

Violet Giraffe Violet Giraffe
30 нояб. 2023 г. 12:42:38
3

Следующий код отлично работает с темой Twenty Eleven:

if ( is_404() ) { 
  echo __('Ничего не найдено','mytheme')
}

Таким образом, код заголовка выглядит следующим образом:

<title>
<?php 

global $page, $paged;

if ( is_404() ) { 
  echo __('Ничего не найдено | ','mytheme');
}
else {
  wp_title( '|', true, 'right' );
} 

?>
</title>
12 окт. 2011 г. 16:03:33
Комментарии

Я настоятельно рекомендую всегда выводить текст <title> с помощью функции wp_title(), либо передавая аргумент, либо используя хук фильтра wp_title, чтобы код корректно работал с другими плагинами, которые пытаются изменить текст <title>.

Chip Bennett Chip Bennett
12 окт. 2011 г. 16:20:53

Спасибо, это не менялось из-за моего SEO-плагина, но спасибо за ответ :)

realcoder realcoder
12 окт. 2011 г. 16:56:58

Но теперь у меня есть ещё одна проблема - моя страница 404 отдаёт заголовок с ответом 404, как я могу это изменить?

realcoder realcoder
12 окт. 2011 г. 16:58:10