フロントの人の雑多メモ

All in One SEOで404ページのtitleタグを変更する方法

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でtitleタグの出力をオフにする方法

All in One SEOでtitleタグの出力をオフにする方法

何が起こっていたか

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;
}

コメント

内容を確認の上、個人情報などは省いて掲載させていただきます。

直接送信されます。確認の上、「送信」してください。

シェア

Twitterでシェア Facebookでシェア LINEでシェア はてなブックマークでシェア