[wordpress] カスタム投稿から特定のカスタム分類のみ表示する方法

Sponsored Link

wordpress1

カスタム投稿タイプを利用したコンテンツから特定のカスタム分類の内容をサブクエリを用いて表示させる方法です。

query_postsの引数「tax_query」でゴチャゴチャやってたのですが、うまく行かなかったので、シンプルに書いたら行けました。

ということで備忘録としてまとめます。

「functions.php」への記述

カスタム投稿タイプを利用するために、下記の内容を「functions.php」に追記します。

add_action('init', 'register_post_type_and_taxonomy');
function register_post_type_and_taxonomy() {
  register_post_type(
    'sample',
    array(
      'labels' => array(
        'name' => 'サンプル例',
        'add_new_item' => 'サンプル例を追加',
        'edit_item' => 'サンプル例の編集',
      ),
      'public' => true,
      'supports' => array(
        'title',
        'editor',
      ),
    )
  );
  register_taxonomy(
    'grouping',
    'sample',
    array(
      'labels' => array(
        'name' => '分類',
        //'add_new_item' => '分類を追加',
        'edit_item' => '分類の編集',
      ),
      'hierarchical' => true,
      'show_admin_column' => true,
    )
  );
}

特定のカスタム分類のカスタム投稿のみ取得する

query_postsを使って、次のパラメータを指定して取得しています。ちなみにループ内の処理は別ファイル「content-sample.php」を読み込んで行っています。

<?php query_posts( array(
     'post_type' =>'sample', 
     'taxonomy'=> 'grouping', 
     'term'=> 'sample-a', 
     'posts_per_page' => 10, 
     'order' => 'ASC', 
));
  if (have_posts()) :
    while (have_posts()) :
      the_post();
      get_template_part('content-sample');
    endwhile;
  endif;
  wp_reset_query();
?>

もう少し複雑な条件で抽出する場合は、tax_queryを使った方が単純だろうから覚えないとな〜

関連記事

福岡のウェブデザイン事務所「ハブワークス」

HP作成・リニューアルは福岡のハブワークスまでお気軽にお問い合わせください。ウェブサイト公開後の修正・更新もお任せください。フリーランスだからできるリーズナブルな料金設定でサービスをご提供いたします。