サイドバーの年月アーカイブからカテゴリーを絞った記事一覧をcategory.phpで出力
下記のURLにリンクする年月別アーカイブ
https://test.com/?cat=1
https://test.com/2021/?cat=1
https://test.com/2021/01/?cat=1
サイドバーに下記を記載 カテゴリーID 1 の例
下記の「 ?cat=1 」は絞りたいカテゴリースラッグに変更
例は スラッグ:news カテゴリーID:1
この場合、category.phpを使う
●件数も出る
2023年5月(4)
2023年4月(5)
2023年(9)
2022年(15)
<?php
$args = array(
'category' => 1, // カテゴリーIDが1の記事のみを取得
'posts_per_page' => -1 // すべての記事を表示
);
$posts_in_category = get_posts($args);
$archive_counts_monthly = array();
$archive_counts_yearly = array();
foreach ($posts_in_category as $post) {
setup_postdata($post);
// 月別アーカイブ
$archive_month = get_the_date('Y年n月');
$archive_month_link = get_month_link(intval(get_the_date('Y')), intval(get_the_date('n')));
if (!isset($archive_counts_monthly[$archive_month])) {
$archive_counts_monthly[$archive_month] = array(
'link' => $archive_month_link,
'count' => 1
);
} else {
$archive_counts_monthly[$archive_month]['count']++;
}
// 年別アーカイブ
$archive_year = get_the_date('Y年');
$archive_year_link = get_year_link(intval(get_the_date('Y')));
if (!isset($archive_counts_yearly[$archive_year])) {
$archive_counts_yearly[$archive_year] = array(
'link' => $archive_year_link,
'count' => 1
);
} else {
$archive_counts_yearly[$archive_year]['count']++;
}
}
echo '<h2>月別アーカイブ</h2>';
echo '<ul>';
foreach ($archive_counts_monthly as $archive_month => $data) {
echo '<li><a href="' . $data['link'] . '?cat=1">' . $archive_month . ' (' . $data['count'] . ')</a></li>';
}
echo '</ul>';
echo '<h2>年別アーカイブ</h2>';
echo '<ul>';
foreach ($archive_counts_yearly as $archive_year => $data) {
echo '<li><a href="' . $data['link'] . '?cat=1">' . $archive_year . ' (' . $data['count'] . ')</a></li>';
}
echo '</ul>';
wp_reset_postdata();
?>
月別アーカイブのみ過去12ヶ月分にしたいとき
<?php
$args = array(
'category' => 1, // カテゴリーIDが1の記事のみを取得
'posts_per_page' => -1 // すべての記事を表示
);
$posts_in_category = get_posts($args);
$archive_counts_monthly = array();
$archive_counts_yearly = array();
foreach ($posts_in_category as $post) {
setup_postdata($post);
// 月別アーカイブ
$archive_month = get_the_date('Y年n月');
$archive_month_link = get_month_link(intval(get_the_date('Y')), intval(get_the_date('n')));
if (!isset($archive_counts_monthly[$archive_month])) {
$archive_counts_monthly[$archive_month] = array(
'link' => $archive_month_link,
'count' => 1
);
} else {
$archive_counts_monthly[$archive_month]['count']++;
}
// 年別アーカイブ
$archive_year = get_the_date('Y年');
$archive_year_link = get_year_link(intval(get_the_date('Y')));
if (!isset($archive_counts_yearly[$archive_year])) {
$archive_counts_yearly[$archive_year] = array(
'link' => $archive_year_link,
'count' => 1
);
} else {
$archive_counts_yearly[$archive_year]['count']++;
}
}
echo '<ul>';
$months_displayed = 0; // 表示した月の数を追跡
foreach ($archive_counts_monthly as $archive_month => $data) {
if ($months_displayed >= 12) {
break; // 12ヶ月を表示したらループを抜ける
}
echo '<li><a href="' . $data['link'] . '?cat=1">' . $archive_month . ' (' . $data['count'] . ')</a></li>';
$months_displayed++;
}
echo '</ul>';
echo '<ul>';
foreach ($archive_counts_yearly as $archive_year => $data) {
echo '<li><a href="' . $data['link'] . '?cat=1">' . $archive_year . ' (' . $data['count'] . ')</a></li>';
}
echo '</ul>';
wp_reset_postdata();
?>
HOME > wordpress設計術 > サイドバーの年月アーカイブからカテゴリーを絞った記事一覧をcategory.phpで出力
wordpress設計術
- カテゴリーをパラメーターとして使用するtag.phpを分岐
- wpカテゴリーcategory.phpとその子、孫カテゴリーページで同じ内容を出力
- WPでSNSシェアボタンを手動でつける・HTML+PHPコード
- category.phpアイキャッチ優先順位
- contactform7 Enter・returunキーで送信させない
- ACFを使用すると通常のカスタムフィールドが消えるので両方表示させる
- wpトピックパス(パンクズ)を作成2
- Yoast SEO でtitleが出ない時にチェックするところ
- wordpressの記事内にショートコードでphpテンプレートを呼び出す
- Contact Form 7でチェックボックスを設置すると見入力必須項目に「入力してください。」が出る
- wordpressカスタム投稿のsingle-カスタム.phpのページナビ(ターム分類内)
- category.php分岐カテゴリーごとにテンプレートを変える(子カテゴリー含む)
- サイドバーの年月アーカイブからカテゴリーを絞った記事一覧をarchive.phpで出力
- mw wp formでチェックボックス(1つ)にチェックを入れた時だけ表示・表示されたinputは入力必須
- wp-親テーマのcssを無効にする
- Advanced Custom Fieldsを入れると消えるカスタムフィールドを表示する方法|wordpress
- wpカスタム投稿月別アーカイブが404になる時
- お知らせ等・月ごとに記事をまとめる(jsを使えば開閉可能)サイドナビで使える
- wpカスタムフィールドに入力した投稿ページのIDの記事を呼び出すWP_Query
- ACFでカラーピッカーを使ってカテゴリーごとに色を付け、TOPページのループ内で表示。styleでbackground-colorを変える
- CPI UI taxonomy- タームテンプレートのタイトル表示
- wordpressのパンクズ(トピックパス)2024年functions.phpとテンプレートに記載
- Advanced Custom Fieldsのチェックボックス・ラジオボタンの結果にクラス名を付ける
- singleページのページ送り・通常とカスタム投稿(CPI UI)
- ブラウザ幅を判定して、特定のページをリダイレクトするjavascript
- wp固定ページとその子(一部除外)に表示
- wordpresのスラッグ名を取得
- conohaサーバー:EC-CUBE4ディレクトリと並列でwpディレクトリを作成した際のhtaccessの書き方
- 投稿記事のスラッグを自動入力
- qTranslate-XT テンプレート内で言語別に分岐させる方法
- wpカテゴリーごとに年月アーカイブを表示
- single.phpをカテゴリーごとに分岐wordpress
- wpのパンくず(トピックパス)をfunctions.phpで作成
- wordpress固定ページでループとページネーション
- wordpressの検索枠設置と条件検索
- CPIの共用レンタルサーバー「シェアードプラン ACE01」パーマリンク変更時のエラー
- Advanced Custom Fields・値によって分岐する
- 今見ている投稿記事と同カテゴリーの記事を表示
- wpログインしている時としていない時で、表示させる内容を変える
- wpセキュリティ対策まとめ
- 標準装備のカスタムフィールドでショートコードを入力して表示する【wordpress】
- functions.phpにショートコードを登録するwordpress
- single.phpに、投稿ページでチェックした特定のカテゴリーの子カテゴリーに限定して表示
- 特定のカテゴリーとその子の時に表示する
- テンプレートに固定ページの内容を読み込む
- WordPressの記事の前後のページへのリンクを自動で表示する方法(カテゴリー内・カテゴリー混合)
- wp プラグイン無しのカスタムフィールドのテンプレート出力
- the_content()の内容をmore前後で2つに分割して出力できる
- 月別アーカイブと記事一覧
- worpressのパーマリンクを変更すると403エラーになる場合
- contact form7 に前ページの情報を与える
- Advanced Custom Fieldsとslick.jsスライダー
- wordpress・ページの子ページ一覧を出力
- wpのcategory.phpで1ページ目にだけ表示する
- WP-PageNaviの2ページ目以降404を解決
- Custom Post Type UIで、特定のカテゴリー一覧を取得する方法
- WordPressで記事の最初の画像を取得してサムネイルサイズで表示する
- ループ記事を古い順に並べる【wordpress】
- Advanced Custom Fields テキストエリアの改行文字列をリストタグ(li)で囲む【wordpress】
- Advanced Custom Fields の表示【wordpress】
- Custom Post Type UIのテンプレート【wordpress】
- Custom Post Type UIカスタム投稿の表示【wordpress】
- Advanced Custom Fieldsでチェックボックスの値を表示する【wordpress】
- 自分が所属するカテゴリーをリンク無し・有りで表示【wordpress】
- 投稿記事全てのリストをpage.phpに表示【wordpress】
- wp分岐・特定の親固定ページとその子ページの時に表示