サポート » 使い方全般 » get_categoryではなくて、get_term??

  • 解決済 sasasa24

    (@sasasa24)


    下記コードにて、投稿のカテゴリのスラッグをそれぞれ取得し、classに付与するなどしました。

    <?php
    	$categories = get_categories();
    	foreach($categories as $category) :
    	echo '<button class="filter" data-filter=".' . $category->slug . '">' . $category->cat_name . '</button>';
    endforeach; ?>
    
    <?php
    	$n = 0;
    	$args = array(
    	'numberposts' => -1,
    	'post_type' => 'XXX'
    	);
    	$customPosts = get_posts($args);
    	if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
    	$cat = get_the_category();
    	$cat_slug  = $cat[0]->category_nicename; ?>
    <li class="<?php echo $cat_slug ?>" data-myorder="<?php echo $n; ?>">
    </li>
    以下略

    これを、カスタム投稿XXXのタクソノミーYYYに属するタームaaa,bbb,cccを取得したい場合はどのようにすれば良いのでしょうか?
    get_termを使ってみたり、いろいろ調べたのですが駄目で途方に暮れております。。
    どなたか教えて頂けないでしょうか。。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • get_termsとget_the_termsに変えただけですが、こんな感じでどうですか?
    検証はしてないです。

    <?php
    	$terms = get_terms( 'YYY' );
    	foreach( $terms as $term ) :
    	echo '<button class="filter" data-filter=".' . $term->slug . '">' . $term->name . '</button>';
    endforeach; ?>
    
    <?php
    	$n = 0;
    	$args = array(
    	'numberposts' => -1,
    	'post_type' => 'XXX'
    	);
    	$customPosts = get_posts($args);
    	if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
    	$cat = get_the_terms( $post->ID, 'YYY' );
    	$cat_slug  = $cat[0]->slug; ?>
    <li class="<?php echo $cat_slug ?>" data-myorder="<?php echo $n; ?>">
    </li>
    トピック投稿者 sasasa24

    (@sasasa24)

    ikaring様
    ありがとうございます!
    お陰様で希望の動作になりました。

    私も先ほどtermとtermsにしてみたのですが上手く行かなったので、
    ikaring様のコードと照らし合わせたら

    foreach( $terms as $term ) :

    のここをずっとcategorysとcategoryにしてました・・
    動くわけないですよね・・・
    本当に助かりました。ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「get_categoryではなくて、get_term??」には新たに返信することはできません。