「カレンダー」ウィジェットを「YYYY-MM」形式に変更する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

記事に記載したコードは、スキンに追加されています。

はじめに

「アーカイブ」ウィジェット

「カレンダー」ウィジェットでは、通常「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」形式に簡単に変更できます。
サイトのデザインや運用上、表示を統一することができます。

タイトルとURLをコピーしました