はじめに

「カレンダー」ウィジェットでは、通常「2025年9月」のように年月が表示されます(図1参照)。
この表示形式は、管理画面の設定に関係なく、YYYY年M月の形式がデフォルトで適用されます。
一方、Cocoonが出力する日付アーカイブページのタイトルは「2025-09」のように表示されます。
そのため、「カレンダー」ウィジェットの表示形式も、日付アーカイブページに合わせて「YYYY-MM」形式に変更します。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
add_filter('get_calendar', function ($calendar_output) {
// キャプションの年月を変更
$calendar_output = preg_replace_callback(
'/<caption>(\d{4})年(\d{1,2})月<\/caption>/u',
function ($matches) {
return '<caption>' . sprintf('%04d-%02d', (int) $matches[1], (int) $matches[2]) . '</caption>';
},
$calendar_output
);
// 前後月リンクの月表示を変更
$calendar_output = preg_replace_callback(
'/(\d{1,2})月/u',
function ($matches) {
return str_pad($matches[1], 2, '0', STR_PAD_LEFT);
},
$calendar_output
);
return $calendar_output;
});
さいごに
今回紹介した方法を使えば、「カレンダー」ウィジェットの年月表示を「YYYY-MM」形式に簡単に変更できます。
サイトのデザインや運用上、表示を統一することができます。