0

在 single-CPT.php 下,我有一个select显示我的分类术语的标签。我首先返回当前帖子的术语,然后返回其他术语。问题是我有一个多余的当前职位,即使我if在显示其他条款之前进行了测试,if 测试排除了当前职位的条款。我下面的代码有什么问题?你的帮助很有价值。

<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,请确保通过将fields参数设置为 来获取术语 ID 数组ids

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

于 2013-04-20T13:47:12.040 回答