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

8

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

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

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

realcoder
источник

Ответы:

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>
dwaser
источник
3
Я настоятельно рекомендую всегда выводить <title>текст, используя wp_title()функцию, либо передавая аргумент, либо используя wp_titleловушку фильтра, чтобы код хорошо играл с другими плагинами, которые пытаются изменить <title>текст.
Чип Беннет
Спасибо, что это не изменилось из-за моего SEO плагина, но спасибо за ответ :)
realcoder
Но теперь у меня есть еще одна проблема, моя страница 404 дает ответ заголовка 404, как я могу это изменить?
realcoder