サポート » 使い方全般 » $exclude = array が無視されて全部のカテゴリーが表示されます

  • 解決済 ad_nogumimi

    (@ad_nogumimi)


    php初心者です。よろしくお願いします。

    カテゴリーの一覧を作成するに当たり、
    IDをそれぞれの
    <li>に持たせ、カテゴリーの一覧をリンクなしで設定するというコードを作成しましたが、
    カテゴリーには不要なカテゴリーがあり、その項目だけは表示したくありません。

    いろいろ調べた結果、

    <ul>
    <?php
    $cat_all = get_terms( "category", "fields=all&get=all" );
    $exclude = array(27,28); // 不要なカテゴリのID
    foreach($cat_all as $value):
    ?>
    <li id="cate_<?php echo $value->term_id;?>"><?php echo $value->name;?></ul>
    </li>
    <?php endforeach; ?>

    このような感じに設定しました。

    しかし、$exclude = array(27,28); // 不要なカテゴリのIDが効果がなく、全部のカテゴリー一覧が表示されてしまいます。
    記述についてご教授いただければと思います。

    さらに、出来れば不要なカテゴリーのIDではなく、
    post_type が 『builder』のカテゴリーのみ表示されるという記述を教えていただけるとなおうれしいです。

    お手数ですが、よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • ad_nogumimiさん、こんにちは。

    get_termsの不要なカテゴリの除外の指定方法を間違っていらっしゃるようなので、コメントさせて頂きます。

    以下のような指定になるかと思います。

    ■例1

    <?php
    //カテゴリーID1と3を除外
    $terms = get_terms( 'category', 'fields=all&get=all&exclude=1,3' );
    ?>
    <?php if( !is_wp_error( $terms ) ) : ?>
    	<?php foreach( $terms as $term ) : ?>
    		<li id="cate_<?php echo $term->term_id; ?>"><?php echo $term->name; ?>
    	<?php endforeach; ?>
    <?php endif; ?>

    ■例2

    <?php
    //カテゴリーID1と3を除外
    $args = array(
    	'fields' => 'all'
    	,'get' => 'all'
    	,'exclude' => '1,3'
    );
    $terms = get_terms( 'category', $args );
    ?>
    <?php if( !is_wp_error( $terms ) ) : ?>
    	<?php foreach( $terms as $term ) : ?>
    		<li id="cate_<?php echo $term->term_id; ?>"><?php echo $term->name; ?>
    	<?php endforeach; ?>
    <?php endif; ?>

    参考URL

    トピック投稿者 ad_nogumimi

    (@ad_nogumimi)

    andante0727 様

    なんと!
    早速、ご回答いただいた上に
    ばっちり希望通りに表示が出来ました。
    今回は例2を利用させていただきました。
    ありがとうございます。

    wordpressを触り始めてちょっと経ちますが、
    こういった書き込みができるように頑張ります!

    また何かありましたらよろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「$exclude = array が無視されて全部のカテゴリーが表示されます」には新たに返信することはできません。