先日、Website Explorerというソフトでエラーが出ていました。

Website Explorerというソフトで出ていたエラー

他にもいろいろエラーはありましたが、
月別アーカイブのエラーが多いので月別アーカイブの
エラーを修正しました。

スポンサーリンク

賢威7で違うcanonical属性を修正

上で発生するエラーのリンク元ページを見てみると
こちらも同じ月別アーカイブ。

ソースを見てみるとcanonical属性で指定した日付アーカイブの
パーマリンクの構造が異なってました。

現在、年月別アーカイブのパーマリンクは
https://b.eax.jp/date/2016/01/

ですが賢威7ではdateが抜けて
https://b.eax.jp/2016/01/
となっており404エラーとなっていました。

賢威7テンプレートではcanonical属性をcanonical_keni();
関数で出力しています。

functions.phpを見るとcanonical_keniでは
get_canonical_keniを呼び出しています。

get_canonical_keniで
canonical属性の出力を行っている様なのでfunctions.php約601行目を
if (isset($url_param[1])) $url = site_url().'/date'.$url_param[1];
に変更しました。

is_dateで分岐している部分にあります。

変更後、年月別アーカイブのソースを見ても
アクセスしているURLと同じURLがcanonical属性で指定される様になりました。

今回のこの修正は、テーマの様々な機能は詰まったfunctions.php
をイジるのでテーマが有効な時には注意して下さい。

元の戻せる様、編集前には必ずバックアップを取っておいてください。
実際に行われる際は自己責任でお願いします。

あとがき

パーマリンクに%post_id%を指定していると
年月別アーカイブに/date/が入る様です。
【参考】urlに「date」が入ってしまう (3 件の投稿)

なので、パーマリンクをカスタム構造にしていて
パーマリンクの3層以内に%post_id%が入っている場合は
同じ様なエラーが出現する可能性があります。