MENU

single_month_title()

single_month_title() は、指定された月アーカイブページのタイトルを取得または表示するためのテンプレートタグです。

アーカイブページで、その月に公開された投稿を表示する際に役立ちます。

目次

機能の説明

single_month_title() は、現在の月アーカイブの月名と年を取得し、月アーカイブの見出しやタイトルを表示します。

例えば、「October 2024」や「2024年10月」のような形式で月の情報を表示できます。

引数を指定することで、エコー(出力)するか、値を取得するかを選択できます。

シンプルなコード例

single_month_title();

現在の月アーカイブのタイトルをそのまま表示します(例:October 2024)。

使い方の解説

single_month_title($prefix, $display)

引数

  • $prefix: タイトルの前に付ける文字列(デフォルトは空)。
  • $display: true ならエコー(出力)、false なら文字列として取得。

月アーカイブのタイトルをそのまま表示

single_month_title();

月アーカイブページで「October 2024」などのタイトルを表示します。

月アーカイブのタイトルを取得して変数に格納

$month_title = single_month_title('', false);
echo '<h1>' . $month_title . '</h1>';

月のタイトルを取得し、<h1> タグで囲んで表示します。

タイトルにプレフィックスを追加して表示

single_month_title('アーカイブ: ');

「アーカイブ: October 2024」という形式でタイトルを表示します。

一緒に使うことが多い関連タグ

get_the_date()

get_the_date() は、個々の投稿の公開日を取得するテンプレートタグです。

echo get_the_date( 'F Y' );

このコードは、get_the_date() タグを使い、「October 2023」のように月と年を表示します。フォーマットは自由にカスタマイズ可能で、single_month_title() と似た動作をしますが、より細かい日付指定が可能です。

single_month_title() と組み合わせることで、月アーカイブ内の各投稿の日付を表示できます。

if (have_posts()) {
    while (have_posts()) {
        the_post();
        echo '<h2>' . get_the_title() . '</h2>';
        echo '<p>公開日: ' . get_the_date('Y年m月d日') . '</p>';
    }
}

月アーカイブ内の各投稿のタイトルと公開日を表示するループです。

the_time()

the_time() は、投稿の日付や時刻をフォーマットに従って表示します。アーカイブページ内でその投稿がいつ公開されたかを表示する場合に使われます。

echo the_time('F j, Y');

このコードは、the_time() を使って「October 10, 2023」のように日付を表示します。年月日を細かく表示するのに便利です。

get_the_time()

get_the_time() は、特定の投稿の時刻情報を取得します。日付だけでなく時間も表示したい場合に使用できます。

echo get_the_time( 'g:i a' );

出力できる情報

  • F:完全な月名(例:October)
  • j:日(1から31までの数値)
  • Y:4桁の年(例:2023)
  • ga:12時間制での時刻(例:3:45 pm)

the_archive_title()

the_archive_title() は、アーカイブページ全体のタイトル(カテゴリ、月など)を表示します。single_month_title() と同じく月アーカイブのタイトルを表示する場面で使われますが、汎用性が高いです。

the_archive_title('<h1>', '</h1>');

月アーカイブのタイトルを <h1> タグで囲んで表示します。

if (is_month()) {
    echo '<h1>';
    single_month_title('アーカイブ: ');
    echo '</h1>';
}

if (have_posts()) {
    while (have_posts()) {
        the_post();
        echo '<h2>' . get_the_title() . '</h2>';
        echo '<p>' . get_the_date('Y年m月d日') . '</p>';
    }
}

月アーカイブページで、月タイトルを表示し、その月に公開された各投稿のタイトルと日付を表示する例です。

追加情報を取得したい場合

get_the_archive_description() でアーカイブの説明を取得

アーカイブページに設定されている説明文を取得するタグです。

echo '<div class="archive-description">';
echo get_the_archive_description();
echo '</div>';

アーカイブページに設定された説明文を <div> タグで囲んで表示します。

出力できる情報

  • description:アーカイブの説明文
  • term_name:アーカイブのカテゴリや月名

想定されるトラブル

月アーカイブページでタイトルが表示されない

single_month_title() がループ外で使用されている可能性があります。

解決方法

  • テンプレートが正しく設定されているか確認してください。
  • is_month() で条件を確認し、アーカイブページかどうかを判定します。

日本語形式の日付が表示されない

フォーマットが正しく設定されていない可能性があります。

解決方法

single_month_title() の引数に日本語のプレフィックスを設定します。

日付のフォーマットが異なる

テーマやプラグインが日付フォーマットを変更している可能性があります。

解決方法

get_the_date()the_time() を使ってカスタムフォーマットを指定することで解決できます。

Q&A

single_month_title() はどのテンプレートで使えば良いですか?

月アーカイブページ専用のテンプレート(archive.phpdate.php)で使用します。

出力せずに月タイトルを取得するには?

第2引数に false を指定することで、値を取得できます。

$month_title = single_month_title('', false);

タイトルの形式を変更するには?

WordPressの設定(「設定 > 一般 > 日付形式」)で変更するか、get_the_date() などの関数を使ってフォーマットをカスタマイズします。

single_month_title() は何のために使いますか?

single_month_title() は、月別アーカイブページで現在表示されている年と月を出力するために使用します。

例えば、2023年10月のアーカイブページで「October 2023」を表示します。

single_month_title() は月と年をカスタマイズして表示できますか?

いいえ、single_month_title() 自体はフォーマットをカスタマイズできませんが、get_the_date() を使えばフォーマットを自由に変更できます。

複数の月のアーカイブを表示する方法はありますか?

single_month_title() は1つの月に対応するため、複数の月を表示する場合は get_the_date() などで各投稿の日付を個別に表示する必要があります。

まとめ

single_month_title() は、月アーカイブページのタイトルを表示するための便利なテンプレートタグです。

引数でプレフィックスを指定したり、取得するだけにするなどの使い方ができます。

また、get_the_date()the_archive_title() と組み合わせることで、柔軟なアーカイブページの作成が可能です。

アーカイブページに関連する情報をさらに取得する場合は、get_the_archive_description() などの関連タグも活用できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次