menu
閉じる
  1. Welcartの商品一覧でSKUごとの価格を表示する
  2. Gutenberg ブロックエディタに設定した内容をカスタムフィールド…
  3. WordPressのテキストエディタから不要なボタンを削除
  4. 管理画面でのカスタム投稿一覧の並び順を日付降順に変更
  5. カテゴリをチェックした時に、並び順が変更にならないようにする
  6. WordPressで複数の条件を組み合わせた検索フォーム
  7. WordPressのヘッダーから余分なMETA情報や絵文字関連を削除
  8. 【令和追加】date()関数を日本の元号に対応させる
  9. カスタム投稿タイプとタクソノミー、ターム追加スニペット
  10. ログイン画面をカスタマイズ
閉じる
閉じる
  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールド…
  2. 投稿ページが複数カテゴリに紐づく場合のパンくずリスト
  3. MW WP Formのフォームに投稿やカスタム投稿、タクソノミーを選択…
  4. jQueryプラグイン「VEGAS」にテキストを追加して背景の切り替え…
  5. 親ターム子ターム毎にまとめて記事一覧を表示する
  6. ビジュアルエディタにTinyMCEの機能を追加する覚書(プラグインなし…
  7. Really Simple CSV Importerプラグインでパーマ…
  8. Advanced Custom Fields PROの「オプションペー…
  9. 管理画面のカスタム投稿記事一覧ページでカスタムタクソノミーで絞り込み
  10. 【令和追加】date()関数を日本の元号に対応させる
閉じる

Mana Design Lab.

親ターム子ターム毎にまとめて記事一覧を表示する

タクソノミーのタームに紐づく記事一覧をツリー構造のように表示することがたまにあって、要領をいつも忘れるから覚書。

例)
■親ターム名
○子ターム名
・記事タイトル
・記事タイトル
・記事タイトル
○子ターム名
・記事タイトル
・記事タイトル
・記事タイトル

■親ターム名
○子ターム名
・記事タイトル
・記事タイトル
・記事タイトル

<div class="l-primary">
	<?php
	echo '<div class="p-entry__body sentry">';
	the_content();
	echo '</div>';
	$categories = get_terms('studio_region','parent=0');
	foreach ( $categories as $cat ) {
		echo '<h2 class="sentry-ttl">' . esc_html($cat->name) . '</h2>';
		$children = get_terms('studio_region','hierarchical=0&parent='.$cat->term_id);
		if($children){
		foreach ( $children as $child ) {
			echo '<h3 class="sentry-sub-ttl">' . esc_html($child->name) . '</h3>';
			$catslug = $child->slug;
			$args = array(
				'post_type' => 'studio',
				'tax_query' => array(
	                array(
	                    'taxonomy' => 'studio_region',
	                    'terms' => array( $catslug ),
	                    'field' => 'slug',
	                    'include_children' => true,
	                    'operator' => 'IN'
	                )
	            ),
				'posts_per_page' => -1
			);
			$myquery = new WP_Query( $args );
			?>
			<?php if ( $myquery->have_posts()): ?>
			<div class="p-blog-list">
				<?php while($myquery->have_posts()) : $myquery->the_post();  ?>
				<article class="p-blog-list__item p-article01">
					<a class="p-article01__img p-hover-effect--type1" href="<?php the_permalink() ?>">
						<?php if(has_post_thumbnail()) : ?>
						<img src="<?php echo get_the_post_thumbnail_url($post->ID,'size1'); ?>" class="attachment-size1 size-size1 wp-post-image" alt="">
						<?php else : ?>
						<img src="<?php echo $tempurl; ?>/assets/images/600x600.gif" class="attachment-size1 size-size1 wp-post-image" alt="">
						<?php endif; ?>
					</a>
					<div class="p-article01__content">
						<h3 class="p-article01__title">
							<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
						</h3>
					</div>
				</article>
				<?php endwhile; ?>
			</div>
			<?php endif; ?>
			<?php wp_reset_postdata(); ?>
		<?php } ?>
		<?php
		} else {
			$catslug = $cat->slug;
			$args = array(
				'post_type' => 'studio',
				'tax_query' => array(
	                array(
	                    'taxonomy' => 'studio_region',
	                    'terms' => array( $catslug ),
	                    'field' => 'slug',
	                    'include_children' => true,
	                    'operator' => 'IN'
	                )
	            ),
				'posts_per_page' => -1
			);
			$myquery = new WP_Query( $args ); ?>
			<?php if ( $myquery->have_posts()): ?>
			<div class="p-blog-list">
				<?php while($myquery->have_posts()): $myquery->the_post(); ?>
				<article class="p-blog-list__item p-article01">
					<a class="p-article01__img p-hover-effect--type1" href="<?php the_permalink() ?>">
						<?php if(has_post_thumbnail()) : ?>
						<img src="<?php echo get_the_post_thumbnail_url($post->ID,'size1'); ?>" class="attachment-size1 size-size1 wp-post-image" alt="">
						<?php else : ?>
						<img src="<?php echo $tempurl; ?>/assets/images/600x600.gif" class="attachment-size1 size-size1 wp-post-image" alt="">
						<?php endif; ?>
					</a>
					<div class="p-article01__content">
						<h3 class="p-article01__title">
							<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
						</h3>
					</div>
				</article>
				<?php endwhile; ?>
			</div>
			<?php endif; ?>
			<?php wp_reset_postdata(); ?>
		<?php } ?>
	<?php } ?>
</div>

 

関連記事

  1. 管理画面でのカスタム投稿一覧の並び順を日付降順に変更

  2. メニューのリンクが空の場合はa要素を出力しない

  3. ユーザー情報に設定したカスタムフィールドの値

  4. 投稿ページが複数カテゴリに紐づく場合のパンくずリスト

  5. ビジュアルエディタの見出しや段落を制御する

  6. Advanced Custom Fields : Repeate…

おすすめ記事

  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールドを含め他のページで表示する
  2. Really Simple CSV Importerプラグインでパーマリンクの末尾に付く「-2」をSQLで一括削除
  3. 【令和追加】date()関数を日本の元号に対応させる
  4. WordPressで複数の条件を組み合わせた検索フォーム
  5. ログイン画面をカスタマイズ

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. 他のページで設定したブロックの内容を表示したかった時の覚書。汎用性からショートコードにまとめ…
  2. 大量の記事をCSVで一気に流し込めるプラグイン「Really Simple CSV Importer…
  3. 未だに明治やら大正やら昭和やら平成やら日本の元号がちょくちょく利用されますが、素晴らしいdate()…

最新記事

  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールドを含め他のページで表示する
  2. 投稿ページが複数カテゴリに紐づく場合のパンくずリスト
  3. MW WP Formのフォームに投稿やカスタム投稿、タクソノミーを選択項目として表示
ページ上部へ戻る