All in One SEOで404ページのtitleタグを変更する方法
WordpressのSEOプラグイン All in One SEO (AIOSEO) で404ページのtitleタグを任意の値に変更する方法をご紹介します。
少し調べた限りでは、404ページだけ wp_head() を実行しなければ良い なんて記事もあるみたいですが、それもそれでちょっと気持ち悪いですよね。
結論
header.phpの <head> 内に404ページ用のtitleタグを記述します。
<?php if(is_404()): ?>
<title>404 Not Found</title>
<?php endif; ?>
(略)
<?php wp_head(); ?>
wp_head() は通常通り書いておいてOKです。
functions.phpに以下のコードを追加します。
//404ページのtitleタグをオフ
add_filter( 'aioseo_disable_title_rewrites', 'aioseo_disable_term_title_rewrites' );
function aioseo_disable_term_title_rewrites( $disabled ) {
if ( is_404() ) {
return true;
}
return false;
}
titleタグの出力をオフにするフィルターフックを404ページにのみ適用しています。
aioseo_disable_title_rewrites - AIOSEO
このフィルターフックについて詳しくはこちら。 (言うほど詳しくもないですが...)
何が起こっていたか
All in One SEOでは404ページのタイトルが設定できません。
そのため、404ページでは空のtitleタグが出力されます。
<!-- All in One SEO 4.x.x.x - aioseo.com -->
<title></title>
(略)
じゃあ404ページを判定して、独自にtitleタグを入れよう!という発想になるのですが
<?php if(is_404()): ?>
<title>404 Not Found</title>
<?php endif; ?>
(略)
<?php wp_head(); ?>
wp_head() が実行されている限りこのようになり、空のtitleタグで上書きされてしまいます。
404ページの出力結果
<title>404 Not Found</title>
(略)
<!-- All in One SEO 4.x.x.x - aioseo.com -->
<title></title>
(略)
そこでもうひと手間。
404ページのみtitleタグの出力をオフにするフィルターフックを付け加えた。って訳でした。
functions.php
//404ページのtitleタグをオフ
add_filter( 'aioseo_disable_title_rewrites', 'aioseo_disable_term_title_rewrites' );
function aioseo_disable_term_title_rewrites( $disabled ) {
if ( is_404() ) {
return true;
}
return false;
}
お役に立てましたら応援をお待ちしております!
頂いた応援は子育てに活用させていただきます。
または以下のボタンからなにか買って応援 (PR)
Amazon
楽天市場
Yahoo!ショッピング