カスタム分類のすべての用語を表示しますか?


18

私はいくつかのカスタム分類を作成し、そこからすべての用語を表示する必要があります。これまでに達成したことは、カスタム投稿タイプで選択/選択された分類を表示することですが、選択するかどうかにかかわらず、すべて表示する必要があります。そのため、後でカスタム投稿タイプの値に含まれる用語に応じてフィルタリングするフィルターを作成できます。

<?php 
$args=array(
  'public'   => true,
  '_builtin' => false
);
$output = 'names'; // or objects
$operator = 'and';
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    $terms = get_terms($taxonomy);
        foreach ( $terms as $term) {
?>
        <li><br><a href="#"><input type="checkbox" name="profile[]" value=""><?php echo $term->name; ?> <br/></a></li>
       <?php 
                }
              }
            }  
            ?>

これまでのところ。

前もって感謝します!


これはどの時点で失敗しますか?どれだけあなたが望むように機能しますか?
s_ha_dum

問題は、カスタム投稿タイプで選択した用語のみを表示できることです。選択したかどうかをすべて表示したいのですが、表示するためだけにすべてを選択したダミーの投稿タイプは必要ありません。
デビッドH

回答:


39

に追加の引数を渡す必要がありますget_terms()。デフォルトでは、「空の」用語、つまり投稿に割り当てられていない用語を非表示にします。

$terms = get_terms([
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
]);

どうもありがとうございます!しかし、私は何かを聞きたいのですが、なぜ最初の配列が表示されている場所の上に変数を宣言するのではなく、変数内に配列を作成するのですか?
デビッドH

シンプル。引数配列がより複雑な場合は、最初に宣言したはずです(ほとんどの場合)が、単一の引数の場合は、最も簡単な方法です。どちらの方法でも同様に機能するはずです。
s_ha_dum

どうもありがとう:)それは私をたくさん考えました。ほんとうにありがとう!
デビッドH 14年

ワークス!! これで、すべての分類オプションで何が起こっているのかを確認できます!いくつかのプラグインはそこに複雑な構造を作成します。
eyal_katz

6

4.5.0以降、タクソノミーは$ args配列の 'taxonomy'引数を介して渡される必要があります。

$terms = get_terms( array(
    'taxonomy' => 'post_tag',
    'hide_empty' => false,
) );

投稿のない用語はデフォルトで非表示になっています。


3

このコードは、次を使用してすべてのカテゴリおよびサブカテゴリのカスタム分類を取得しますget_terms()

<?php $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'parent' =>0)); 
   foreach($wcatTerms as $wcatTerm) : 
   ?>
<ul>
   <li>
      <a href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a>
      <ul class="megaSubCat">
         <?php
            $wsubargs = array(
               'hierarchical' => 1,
               'show_option_none' => '',
               'hide_empty' => 0,
               'parent' => $wcatTerm->term_id,
               'taxonomy' => 'product_cat'
            );
            $wsubcats = get_categories($wsubargs);
            foreach ($wsubcats as $wsc):
            ?>
         <li><a href="<?php echo get_term_link( $wsc->slug, $wsc->taxonomy );?>"><?php echo $wsc->name;?></a></li>
         <?php
            endforeach;
            ?>  
      </ul>
   </li>
</ul>
<?php 
   endforeach; 
   ?>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.