如何更改404页面标题


8

我在互联网上搜索后尝试了许多方法,但无法删除404页面标题中的“找不到任何内容”怎么办,请帮助我

甚至我在404页面标题中也有这个 if( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

我也ramove php title函数和五个我自己的标头,但仍然没有更改为什么?

Answers:


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 2011年

SEO插件几乎可以肯定使用wp_title过滤器。如果您需要覆盖它,请为您的呼叫添加优先级add_filter()。请参阅答案更新。
Chip Bennett

添加更高的优先级对我来说有用。
亚历克斯(Alex)

2

WordPress 4.4以上

可接受的答案不再有效,如wp_titleWordPress 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>文本的其他插件很好地配合使用。
Chip Bennett

谢谢,这并没有因为我的seo插件而改变,但是感谢您的回复:)
realcoder

但是现在我又遇到一个问题,我的404页面给出了404标头响应,我该如何更改呢?
realcoder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.