0

single-CPT.php の下selectに、分類法の用語を表示するタグがあります。最初に現在の投稿の用語を返し、次に他の用語を返します。問題は、他の用語を表示する前にテストを実行しても、冗長な現在の投稿用語があることです。ififテストでは現在の投稿の用語が除外されます。以下の私のコードで何が間違っていますか? あなたの助けは貴重です。

<select class="select"> 
                                         <?php 

                                            $my_current_term =  wp_get_object_terms(get_the_ID(), 'product_category');
                                            foreach($my_current_term as $c_term)
                                            {
                                            ?>


                                            <option value="<?php echo $c_term->name;?>">
                                            <?php echo $c_term->name; ?>
                                            </option>
                                            <?php

                                             }

                                            $all_my_terms =  get_terms('product_category');//add asc and order by  name in asc



                                            foreach ($all_my_terms as $term1 ) {
                                                if ( $my_current_term->name != $term1->name ) {

                                                $option = '<option value="'.$term1->name.'">';
                                                $option .= $term1->name;
                                                $option .= '</option>';
                                                echo $option;
                                                }
                                            }

                                             ?>

                                        </select>
4

1 に答える 1

1

取得中に用語を除外できます。

$all_my_terms = get_terms( 'product_category', array( 'exclude' => $c_term->term_id ) );

また、 を使用する場合は、引数を にwp_get_object_terms設定してターム ID の配列を取得してください。fieldsids

wp_get_object_terms( get_the_ID(), 'product_category', array( 'fields' => 'ids' ) );

于 2013-04-20T13:47:12.040 に答える