taxonomy-term.phpで特定の親(固定ページ)をもつ子ページだけ表示させる方法

taxonomy_term

タクソノミーのタームに所属する固定ページを全部表示させるのではなく、特定の親ページをもつ子ページだけを表示させたい場合に使えるwordpressコードの覚書です。

絞り込んだ記事のタイトルや概要だけではなく、その記事のカスタムフィールドタームも表示させるようにしています。

<?php
$get_page_id = get_page_by_path("parent_slug");//固定ページの親名
$get_page_id = $get_page_id->ID;
$my_pages = get_posts(array(
	'post_type' => 'page',
	'posts_per_page' => '-1',
	'post_parent' => $get_page_id,
	'orderby' => 'menu_order',
	'order' => 'ASC',
	'tax_query' => array(  
      array( 
        'taxonomy' => 'taxonomy_name', //カスタム分類taxonomy名
        'field' => 'slug',
        'terms' => $term, // タームtermで絞り込む
      ) 
    ) 
));
?>


<?php if($my_pages):
	foreach ($my_pages as $post):
		setup_postdata($post);
?>
<!--アイキャッチ画像-->
	<?php if(has_post_thumbnail()){ ?>
	<div class="left post-thum">
	<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php echo the_post_thumbnail(); ?></a>
	</div>
	<?php } ?>
	<!--/アイキャッチ画像-->
<!--本文抜粋-->

<h3 class="post-title"><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>

<p><?php echo esc_html( $post->post_excerpt ); ?></p>//概要表示

▼記事のターム(term)を指定してそのリンク表示させる方法
⇨タームslugを指定
<ul>
<?php
the_terms( $post->ID, 'fm_slug', '<li>タイプ: ', ' / ', '</li>' );
?>
<?php
the_terms( $post->ID, 'color_slug', '<li>色: ', ' / ', '</li>' );
?>
<?php
the_terms( $post->ID, 'size_slug', '<li>サイズ: ', ' / ', '</li>' );
?>
</ul>


▼特定のタームの情報を配列で取得する
⇨taxonomyのslugを指定する
<?php $terms = get_the_terms( $post->ID, 'taxonomy_slug' ); ?>
<?php foreach ( $terms as $term ) : ?>
<a href="http://sample.net/<?php echo esc_html( $term->taxonomy ); ?>/<?php echo esc_html( $term->slug ); ?>/"><img src="http://sample.net/<?php echo esc_html( $term->taxonomy ); ?>/<?php echo esc_html( $term->slug ); ?>.png" alt="<?php echo esc_html( $term->name ); ?>"></a>
<?php endforeach; ?>


▼記事のカスタムフィールドを表示させる
⇨カスタムフィールドのkeyを指定
<?php 
$key_1_value = get_post_meta( get_the_ID(), 'sample_key1', true );
$key_2_value = get_post_meta( get_the_ID(), 'sample_key2', true );
// カスタムフィールドが値を持つかチェック
if ( ! empty( $key_1_value ) ) {
  echo $key_1_value;
  echo $key_2_value;
} 
?>
	<!--/本文抜粋-->
<?php endforeach;
wp_reset_postdata();
else : ?>
<div class="contents">
<p>お探しの記事は見つかりませんでした。</p>
</div>
<?php endif; ?>

参考サイト:
親ページのスラッグを指定して子ページ一覧を表示する

関連記事リスト

WordPressにソーシャルボタンを設置するプラグイン「WP Social Bookmarking Light」
WordPressにソーシャルボタンを設置するプラグイン「WP Soc...

サイトの読み込みページを早くするWordPressプラグイン「Quick Cache」
Googleのスコアカードでサイトの状況の「ページ読み込み時間のパフォ...

カテゴリarchive.phpで子カテゴリ一覧を表示させるphpコード(WordPress)
カテゴリアーカイブページ(archive.php)で子カテゴリがあれば...

WordPressで精度の高い関連記事を表示させるプラグインYARPPの設定方法
ブログの記事が増えてきたらPVを増やすためにも、より精度の高い関連記事...

wordpressのデータベース(mySQL)に独自テーブルを作りデータを取り出す方法まとめ
WordpressのMySQLデータベースに独自テーブルを追加して、そ...

WordPress親固定ページで子ページの記事一覧を表示させる方法
サイト型アフィリエイトサイトを作る時に便利なのが固定ページの利用です。...

WordPressで特定のカテゴリ(タグ)記事だけを表示させる方法
WordPressで特定のカテゴリやタグ内の記事を表示させる方法。アイ...

あるとちょっと便利なWordPressプラグイン3個
最近はサイト作りはWordPressが基本なのですが、入れているプラグ...

WordPressタグアーカイブページでタグスラッグを取得する方法
Wordpressのアーカイブページのタグテンプレート(tag.php...

WordPressを導入したら始めに入れたい、おすすめプラグイン5個
WordPressを導入したら始めに入れたい、おすすめプラグイン5個に...

コメントを残す

このページの先頭へ