googleのsearch consoleで「updated がありません」と言われます。 記事の更新日時を表示しているタグのクラスをupdatedにする必要があるらしい。
タグにupdatedとつけることで、検索エンジン等がこのデータは更新日時を表しているのだなと分かるようになります。このupdatedのようなものを構造化データと呼ぶそうです。
ちなみに、この構造化データについてテストできるツールが下記です。URLを入れると、そのページの構造化データを全部取得・表示し、問題ないか教えてくれます。でもこれで、search consoleでエラーが出ているURLを入力しても、エラーは表示されない。
wordpressの記事更新日時タグのクラスをupdatedにする
wp-contentというディレクトリに、テーマとかプラグインが入っているようです。私は今ampleというテーマを利用していますが、wp-content/themes/ampleにそのテーマのファイルが入っていました。どのファイルに該当箇所があるのか検索します。
$ grep -rn 'entry-date published' * inc/functions.php:415: $time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time>';
ソースコードは下記のようになってました。
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time>'; if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { $time_string .= '<time class="updated" datetime="%3$s">%4$s</time>'; }
作成日時と更新日時が異なる場合のみ、updatedクラスのタグを追加しています。でも画面には作成日時しか表示されないので、updatedクラスのタグはdisplay:noneとかにしてあるようです。全く問題ない気もしますが、更新日時がない場合は、作成日時と同じ日時でupdatedクラスのタグを表示させるようにコードを修正します。
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time>'; if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { $time_string .= '<time class="updated" datetime="%3$s">%4$s</time>'; }else{ $time_string .= '<time class="updated" datetime="%1$s">%2$s</time>'; }
Structured Data Testing Toolでみると、作成日時と更新日時が違う場合でないと、検証結果にupdatedが表示されませんでした。search consoleもすぐにテストできないみたいなので、しばらく時間経ってから確認してみたいと思います。
参考: WordPress で構造化データエラー(entry-title, updated, author)にハイブリッド対応 WordPressの仕組みを理解する