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() は、月アーカイブページのタイトルを表示するための便利なテンプレートタグです。
引数でプレフィックスを指定したり、取得するだけにするなどの使い方ができます。
また、get_the_date() や the_archive_title() と組み合わせることで、柔軟なアーカイブページの作成が可能です。
アーカイブページに関連する情報をさらに取得する場合は、get_the_archive_description() などの関連タグも活用できます。
コメント