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

2016年03月25日
follow us in feedly

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を使った方が単純だろうから覚えないとな〜

follow us in feedly

関連記事

福岡でホームページ制作を依頼するなら【ハブワークス】

ホームページ制作・リニューアル・スマートフォンサイト制作・ECサイト制作は福岡のハブワークスまでお気軽にどうぞ。WEBサイト制作後の修正・更新・SEO対策もお任せください。リーズナブルな料金設定でサービスをご提供いたします。

webサイト制作・修正に関するお問合せ・ご相談・お見積りはお気軽にどうぞ