WordPress XML サイトマップに lastmod を追加する

WordPress 5.5 から XML サイトマップが example.com/wp-sitemap.xml として自動出力される様になりました。
しかし、実装されたネイティブの XML サイトマップにはデフォルトで<lastmod>が出力されません。
WordPress の開発者ページには以下のサンプルコードが紹介されていました。


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

これを functions.php に記述すると確かに wp-sitemap.xml の投稿と固定ページリストに最終更新日が出力されています。
しかし、この wp-sitemap.xml を Google サーチコンソールに送信すると、サイトマップ自体は読み込めるもののステータスがエラーになります。
ステータスエラーの原因は lastmod の値が ISO 8601 による日時表記でない為。

ISO 8601 形式の日時表記にするには
$post->post_modified_gmt;
の部分を修正すれば良さそうです。


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

修正後 XML サイトマップを Google サーチコンソールに再送信するとステータスは「成功しました」になり、他にエラーも出ていない様です。
又、wp-sitemap.xml のページには最終更新日が ISO 8601 形式で表記されているのが確認出来ます。