LION BLOG │ パンくずリストのエラーを解消する

LION BLOG │ パンくずリストのエラーを解消する

Google Search Consoleの「パンくずリスト」に

data-vocabulary.org スキーマのサポートは終了します

っていうエラーが出ていたので、これを解消しました。

パンくずとは

そもそも「パンくず」ってなんなのよ?というと、当ページの上に表示されている

これです。

HOME → (カテゴリ) → (ページタイトル)のように、一般的にはトップページから該当ページへたどる道すじを示したものという解釈で合ってると思います。

ちなみに英語でも“breadcrumbs list”と言われていて、本当にパンくずっていう意味で使っているっぽい。グリム童話のヘンゼルとグレーテルで、森の中で迷わないように道しるべとして「パンくず」を落としていったエピソードに由来しているらしい。

エラーの原因

エラーの原因は、この「パンくず」を生成しているスキーマにdata-vocabulary.orgを使ってるけど、これはもうサポートされなくなるので、ほかのスキーマを使ってね、ということのようです。

調べたところ、schema.orgというスキーマを使えば良いらしい。

修正方法

当サイトではLION BLOGというテーマを使っているので、このテーマの中のfunctions.phpを修正していきます。

具体的には「親テーマ」のfunctions.phpの

itemscope itemtype="http://data-vocabulary.org/Breadcrumb"

となっている箇所を

itemscope itemtype="http://schema.org/BreadcrumbList"

という風に修正します。

自分の環境では13箇所修正しました。なぜ13箇所も同じ文字列が入っているのかは不明です。普通、定数として定義しないんでしょうか?

以上で修正は完了です。

なぜ親テーマを修正するのか?

💡WordPress │ 子テーマを導入してテーマのカスタマイズをしやすくする

という記事にも書きましたが、通常テーマを修正する場合は、親テーマではなく、子テーマを修正するのがセオリーのはず。

ちょろっと調べた感じ、WordPressは子テーマのfunctions.phpをローディングしたあと、親テーマのfunctions.phpをローディングするという仕組みのようです(逆の方がしっくりくるけど…)。

なので、今回のように親テーマのfunctionを大きく変更する場合、たぶん変更するfunctionを子テーマにコピーし、子テーマで修正し、親テーマではそのfunctionがローディングされないように修正する必要があるはず。

if (!function_exists( 'add_quicktags_to_text_editor' ) ) {
     function add_quicktags_to_text_editor() {
       :

みたいな書き方を見かけたので、たぶんこんな感じで「定義済みだったらローディングされない仕組み」が実装されてるのかな、と。

で、今回、修正が必要だったfunction(fit_breadcrumb)は上記のような書き方がされていないので、どのみち親テーマを変更する必要がある、と予想しました。親テーマを修正しなければいけないのなら、子テーマに変更を入れてもあまり意味がないので、今回は親テーマを直接修正する、という方針にしました。

まぁ、ちょっとこの辺は自信がないところです。