【WordPress】プラグイン「All In One SEO」4.1.8~4.2.0でトップページをサブディレクトリ指定しているサイトでcanonicalタグとページURLタグのバグ(?)が出たので対応してみる
※以下の話はバージョン4.2.1.1からは改善されたようです。
一応記事として残しておきます。
せっかく書いたので…w
プラグインのバグですか…?
サイトをシェアしようとすると
「指定されたページが表示されません」
って出るんだけど…
と相談がありました。
OGPタグなどが間違って設定されていないか調べてみたところ
「https://www.example.com/blog/」
などトップページをサブディレクトリ指定しているサイトで
canonicalタグとページURL(og:url)タグ内のURLが
「https://www.example.com/blog/blog/」
となってしまっていました…(;´・ω・)
サイトはプラグイン「All In One SEO」を使用して
canonicalやOGPを表示させていますが今までそのような事はありませんでした。
ブログなどトップページをサブディレクトリ指定しているサイトは
結構ありますのでこれはちょっと困りました…(;´・ω・)
いつからなった…?
最近プラグインをアップデートしたという事で
調べてみるとどうやらバージョン4.1.8以降4.1.8~4.2.0で起きる症状のようです。
症状はトップページのみでカテゴリー一覧ページや投稿・固定ページでは起きていません。
ちなみに
「https://www.example.com/」
などトップページがルートディレクトリ指定のサイトでは起きません。
対応方法はあるか…?あった!
調査していると
canonicalタグを削除するという記述を見つけました。
試しに書いてみると
canonicalタグだけでなく一緒にページURLタグも削除されました。
ちょうど良かったw
1 2 3 4 5 6 7 8 9 |
//All In One SEO canonicalタグとページURLタグを削除する add_filter( 'aioseo_canonical_url', 'aioseo_filter_canonical_url' ); function aioseo_filter_canonical_url( $url ) { if ( is_singular() ) { return ''; } return $url; } |
こちらを利用して
トップページのみ表示させるように
canonicalタグとページURLタグを自分の手で
ヘッダーに記述すれば良さそうと考えましたが
「return ‘ ‘; の’ ‘の中にURL書いたら良いんじゃね?」
return ‘https://www.example.com/blog/’;
と試しに記述してみると
表示されました(`▽´)
トップページのみに処理させるため
is_singular() を is_home() || is_front_page()
に書き換えて
1 2 3 4 5 6 7 8 |
add_filter( 'aioseo_canonical_url', 'aioseo_filter_canonical_url' ); function aioseo_filter_canonical_url( $url ) { if ( is_home() || is_front_page() ) { return 'https://www.example.com/blog/'; } return $url; } |
これで完了(=゚▽゚)/
ですが
いちいちURL書くのも面倒かなと思いまして…w
URLを自動取得できるように変えました。
1 2 3 4 5 6 7 8 9 10 |
//All In One SEO トップページのみcanonicalタグとページURLタグを書き換える add_filter( 'aioseo_canonical_url', 'aioseo_filter_canonical_url' ); function aioseo_filter_canonical_url( $url ) { if ( is_home() || is_front_page() ) { $site_url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; return $site_url; } return $url; } |
これで完了(=゚▽゚)/(=゚▽゚)/
とりあえず対応できましたが
早くプラグイン側で修正されることを願います…(υ´Д`)
この記事の投稿者
taka
Webサイト作ってます。
最近のモットー「決して無理をしないスタイル」
twitter: @taka_sbs