WordPressテーマHabakiriに記事更新時間を表示させ、timeタグをGoogle検索結果に反映させる

関連記事

WordPressテーマHabakiriは更新日時がデフォルト非表示

Habakiri 更新日時 表示

一応テーマ内で更新日時を表示させるための処理は行っているのですが、cssで無効にされています。

CSSだけで対応

.entry-meta__item.updated {
    display: inline-block !important;
}

.hiddenと言うクラスで非表示になっているのでdisplayをinline-blockにしてやれば表示されるように。

functions.phpで対応

add_filter('habakiri_entry_meta', 'myHabakiriEntryMeta');

function myHabakiriEntryMeta($entry_meta)
{
    if (get_the_modified_date('Ymd') !== get_the_date('Ymd')) {
        $entry_meta = preg_replace('%<li class="entry-meta__item published[\s\S]+?entry-meta__item updated[\s\S]+?</li>%',
                                   sprintf('<li class="entry-meta__item updated"><time datetime="%s">%s: %s</time></li><li class="entry-meta__item published">%s: %s</li>',
                                           get_the_modified_date('c'), __('Updated', 'habakiri'), esc_html(get_the_modified_date()),
                                           __('Published', 'habakiri'), esc_html(get_the_date())), $entry_meta);
    }
    $entry_meta = preg_replace('/<li class="entry-meta__item vCard author">.*?<\/li>/',  '', $entry_meta);
    return $entry_meta;
}

記事作成日時にtimeタグを付与し、記事が更新されている場合は更新日時のみにtimeタグを付与するようにしました。

これでGoogleの検索結果に更新日時が優先的に表示されるようになっていたのですが、なぜか最近になって作成日時が優先されるように。

そこでget_the_modified_date()のみ表示するように変更したところ、更新日時が表示されるようになりました。

GoogleのBOTが『作成』とかの文字も読むようになったのかもしれませんが、いい加減に仕様を統一してほしいところですね。

ちなみにこのブログではSchema.orgでも作成日時と更新日時を明記していますが、こちらは読み込んでいないようです。

構造化データの仕組みについて | Google 検索セントラル  |  Google Developers

関連記事