【WordPress】プラグイン「All In One SEO」4.1.8~4.2.0でトップページをサブディレクトリ指定しているサイトでcanonicalタグとページURLタグのバグ(?)が出たので対応してみる

 

 Web技術

※以下の話はバージョン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

こちらを利用して
トップページのみ表示させるように
canonicalタグとページURLタグを自分の手で
ヘッダーに記述すれば良さそうと考えましたが

「return ‘ ‘; の’ ‘の中にURL書いたら良いんじゃね?」

return ‘https://www.example.com/blog/’;

と試しに記述してみると

表示されました(`▽´)

トップページのみに処理させるため
is_singular() を is_home() || is_front_page()
に書き換えて

これで完了(=゚▽゚)/

ですが

いちいちURL書くのも面倒かなと思いまして…w
URLを自動取得できるように変えました。

これで完了(=゚▽゚)/(=゚▽゚)/

とりあえず対応できましたが
早くプラグイン側で修正されることを願います…(υ´Д`)

 この記事の投稿者

アバター画像

taka

Webサイト作ってます。
最近のモットー「決して無理をしないスタイル」

twitter: @taka_sbs

  • このエントリーをはてなブックマークに追加
  • 0 follow us in feedly

ページ最上部へ