イセンチュートリアルサイト
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
TOP PHP カスタム投稿タイプで年別・月別アーカイブを表示する方法

PHP

カスタム投稿タイプで年別・月別アーカイブを表示する方法

  • カテゴリー:PHP

    年別アーカイブの表示方法

     

    投稿タイプのスラッグが「news」の場合

    <?php // 年別アーカイブリストを表示
    	$year=NULL; // 年の初期化
    	$args = array( // クエリの作成
     		'post_type' => 'news', // 投稿タイプの指定
    		'orderby' => 'date', // 日付順で表示
    		'posts_per_page' => -1 // すべての投稿を表示
    	);
    	$the_query = new WP_Query($args); if($the_query->have_posts()){ // 投稿があれば表示
    		while ($the_query->have_posts()): $the_query->the_post(); // ループの開始
    		if ($year != get_the_date('Y')){ // 同じ年でなければ表示
    			$year = get_the_date('Y'); // 年の取得
    			echo '<a href="'.home_url( '/', 'https' ).'news/date/'.$year.'">'.$year.'年</a>'; // 年別アーカイブリストの表示
    		}
    		endwhile; // ループの終了
    		wp_reset_postdata(); // クエリのリセット
    	}
    ?>

     

    月別アーカイブの表示方法

     

    投稿タイプのスラッグが「news」の場合

    <?php
    	// 月別アーカイブリストを表示
    	$post_type = 'news'; // ポストタイプを指定
    	$args = array(
    		'post_type' => $post_type,
    		'posts_per_page' => -1
    	);
    	$archive_query = new WP_Query( $args );
    	while ( $archive_query->have_posts() ) {
    		$archive_query->the_post();
    		$archive_list[ get_the_time( 'Y/n', $post->ID ) ][] = $post->post_title;
    	}
    	wp_reset_postdata();
    	if($archive_list):
    ?>
    <ul>
    	<?php
    		foreach( $archive_list as $year_month => $archive ) :
    		$year_month_arr = explode( '/', $year_month );
    	?>
    	<li>
    		<a href="<?php echo home_url( '/', 'https' ).$post_type.'/date/'.$year_month; ?>">
    		<?php echo $year_month_arr[0].'年'.$year_month_arr[1].'月' ?> [<?php echo count( $archive ) ?>]</a>
    	</li>
    	<?php endforeach; ?>
    </ul>
    <?php endif; ?>
    投稿日:2023年06月26日
次のページ
前のページ

アーカイブ

  • CSS (117)
    • スクロールダウン (8)
    • テキストナビゲーション (11)
    • ボタン (52)
    • メニュー (1)
    • 動画 (2)
    • 検索 (3)
    • 画像リンクの動き (23)
    • 背景の動き (17)
  • Illustrator (8)
  • JS (93)
    • アコーディオンパネル (2)
    • アニメーション (1)
    • エリアの動き (7)
    • ギャラリー (6)
    • グラフ (7)
    • スライド (9)
    • テキストの動き (17)
    • ニュースティッカー (1)
    • ページトップリンク (9)
    • ページ内リンク (2)
    • メニュー (28)
    • モーダルウィンドウ (1)
    • ローディング (3)
  • Photoshop (1)
  • PHP (20)
  • WordPress (4)
    • プラグイン (2)
    • リンク (1)
  • お客様観覧用 (11)
    • WEB制作プラン (1)
    • アニメーション (8)
    • グローバルナビゲーション (1)
    • スライド (1)
  • サーバー (6)
    • CPI (1)
  • 未分類 (6)
  • 法律 (2)
    • 医療法 (1)
    • 柔道整復師法 (1)
TOP
  • CSS
    • スクロールダウン
    • テキストナビゲーション
    • ボタン
    • メニュー
    • 動画
    • 検索
    • 画像リンクの動き
    • 背景の動き
  • Illustrator
  • JS
    • アコーディオンパネル
    • アニメーション
    • エリアの動き
    • ギャラリー
    • グラフ
    • スライド
    • テキストの動き
    • ニュースティッカー
    • ページトップリンク
    • ページ内リンク
    • メニュー
    • モーダルウィンドウ
    • ローディング
  • Photoshop
  • PHP
  • WordPress
    • プラグイン
    • リンク
  • お客様観覧用
    • WEB制作プラン
    • アニメーション
    • グローバルナビゲーション
    • スライド
  • サーバー
    • CPI
  • 未分類
  • 法律
    • 医療法
    • 柔道整復師法
© 2022 isen-print.