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

<?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 } } } ?> 

これまでのところ

よろしくお願いします!

コメント

  • これはどの時点で失敗しますか?'希望どおりに機能しますか?
  • 問題は、選択したものしか表示できないことです。カスタム投稿タイプの用語。選択されているかどうかに関係なくすべてを表示したいのですが、'表示するためだけにすべてが選択されているダミーの投稿タイプは必要ありません。

回答

。デフォルトでは、「空の」用語(投稿に割り当てられていない用語)は非表示になっています。

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

コメント

  • ありがとうございました!しかし、何か質問したいのですが、最初の配列が表示されている場所の上で宣言するのではなく、変数内に配列を作成するのはなぜですか?
  • 単純さ。引数の配列がもっと複雑な場合は、最初に宣言します(ほとんどの場合)が、単一の引数の場合は、それを行う最も簡単な方法です。どちらの方法でも同じように機能するはずです。
  • どうもありがとうございました:)それは私をとても考えました。本当に感謝しています!
  • 動作します!!これで、すべての分類オプションで何が起こっているかを'で確認できます。一部のプラグインは、そこで複雑な構造を作成します。

回答

4.5.0以降、分類法は、 $ args配列の「taxonomy」引数は次のようになります:

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

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

回答

このコードは、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; ?> 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です