WordPress 5.5からコア機能としてサイトマップが自動生成されるようになりました。ブログURL/wp-sitemap.xmlで表示が可能です。WordPress管理画面に設定項目などは無く至ってシンプルな仕様なのですが、最終更新日であるlastmodの指定がされていませんので追加しました。

wp-sitemap.xmlに最終更新日を追加する

WordPressの開発ブログに、wp-sitemap.xmlにlastmodを追加するには下記をfunctions.phpに追加すると記載されています。

add_filter(
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = $post->post_modified_gmt;
        return $entry;
    },
    10,2
);

しかしこれではGoogleサーチコンソールで送信したサイトマップで「サイトマップは読み取り可能ですが、エラーがあります」というエラーが発生してしまいます。

「日付の値が無効です」とのこと。このエラーを修正するには4行目の$post->post_modified_gmt;を修正する必要があります。どうやらlastmodの値をISO8601での日時表記にしないといけないみたいです。上記の$post->post_modified_gmt;部分をget_the_modified_time('c', $post);にすることでエラーを回避できます。

add_filter (
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = get_the_modified_time('c', $post);
        return $entry;
    },
    10,2
);

これでGoogleサーチコンソールのサイトマップのエラーは回避できます。