web-dev-qa-db-ja.com

404ページのタイトルを変更する方法

私はインターネット上で検索した後、多くの方法を試してみましたが何も動かすことができません私の404ページのタイトルから見つかりません

私の404ページのヘッダにもこれがありますif( is_404() ) echo '404 message goes here | '; else wp_title( '|', true, 'right' );

私はまた、phpのタイトル機能と5つの私自身のヘッダを削除しましたが、それでもなぜ変更しないのですか?

8
realcoder

私は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()呼び出しにもっと低いpriorityを追加する必要があるでしょう。例えば次のように:

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

デフォルトは10です。小さい数字は早い(例:高い優先)を実行し、大きい数字は遅い(例:下位優先)を実行します。ですから、あなたのSEOプラグインがデフォルトの優先順位(つまり10)を使うと仮定すると、単に11以上の数字を使うのです。

15
Chip Bennett

WordPress 4.4以上

wp_titleはWordPress 4.4以降では非推奨となっているため、受け入れられた回答は機能しません( こちらを参照 )。代わりに document_title_parts filterフックを使用する必要があります。

これが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' );
1
Swen

次のコードは、21のテーマでうまく動作します。

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>
0
dwaser