サブディレクトリのWPでAIOSEOのcanonical URLがおかしなときの対処法

サブディレクトリに設置したWordPressにおいて、All in One SEOが出力するcanonicalが重複してしまうときの対処法をご紹介。
具体的には
/blog/配下に設置したWordPressで
カノニカルタグがこのようになってしまうことがありました。
<link rel="canonical" href="https://example.com/blog/blog/">
下層はこのように
<link rel="canonical" href="https://example.com/blog/blog/?p=00000">
AIOSEOの設定画面にもそれらしき項目は無く
この辺の設定を変えれば解消しそうですが
結論
フィルターフックを使います。
こちらをfunctions.phpに追記。
//AIOSEOカノニカル正規化フィルターフック
add_filter( 'aioseo_canonical_url', 'aioseo_filter_canonical_url');
function aioseo_filter_canonical_url($url){
if(strpos($url, '/blog/blog/')){ //'/blog/blog/'が含まれる時
$result = str_replace('/blog/blog/', '/blog/', $url); //'/blog/'に置き換える
return $result;
}else{
return $url;
}
}
aioseo_canonical_urlというフィルターフックを使い
「/blog/blog/」という文字列があるとき「/blog/」に置き換えています。
公式ドキュメントはこちら
お役に立てましたら応援をお待ちしております!
頂いた応援は子育てに活用させていただきます。
または以下のボタンからなにか買って応援 (PR)