回答:
私は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以上の数値を使用します。
wp_title
フィルターを使用しています。オーバーライドする必要がある場合は、優先度をadd_filter()
呼び出しに追加します。回答の更新を参照してください。
受け入れられた回答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' );
次のコードは、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>
<title>
ます。これにより、コードは、テキストを変更しようとする他のプラグインとうまく連携します。wp_title()
wp_title
<title>