Исключить термин текущего поста в списке терминов таксономии

Под single-CPT.php у меня есть select тег, который отображает условия моей таксономии. Сначала я возвращаю термин текущего поста, а затем возвращаю остальные. Проблема в том, что у меня есть лишний текущий пост, даже если я выполняю if test перед отображением других терминов, if test исключает термин текущего поста. Что не так в моем коде ниже? ваша помощь ценна.

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

1 ответ

Решение

Вы можете исключить условия при их получении:

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

Также при использовании wp_get_object_termsубедитесь, что вы получите массив идентификаторов терминов, установив fields аргумент ids:

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

Другие вопросы по тегам