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


8

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

даже у меня есть это в моем заголовке страницы 404 if( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

я также удалю функцию заголовка php и пять их собственных заголовков, но все еще не меняю почему?

Ответы:


16

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

function theme_slug_filter_wp_title( $title ) {
    if ( is_404() ) {
        $title = 'ADD 404 TITLE TEXT HERE';
    }
    // You can do other filtering here, or
    // just return $title
    return $title;
}
// Hook into wp_title filter hook
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 или выше.


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

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

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

2

WordPress 4.4 и выше

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

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

function theme_slug_filter_wp_title( $title_parts ) {
    if ( is_404() ) {
        $title_parts['title'] = 'ADD 404 TITLE TEXT HERE';
    }

    return $title_parts;
} 

// Hook into document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );

0

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

if ( is_404() ) { 
  echo __('Nothing Found','mytheme')
}

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

<title>
<?php 

global $page, $paged;

if ( is_404() ) { 
  echo __('Nothing Found | ','mytheme');
}
else {
  wp_title( '|', true, 'right' );
} 

?>
</title>

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

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

Но теперь у меня есть еще одна проблема, моя страница 404 дает ответ заголовка 404, как я могу это изменить?
realcoder
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.