Как определить, находится ли определенный термин в массиве?


В настоящее время я использую приведенный ниже php wordpress, и он создает для меня список.

$term = get_term_by( 'id', $ptc, $taxonomy );
echo '<li><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';

Однако мне нужно это, чтобы проверить, находится ли $term в_array $product_terms, поэтому я попытался:

$term = get_term_by( 'id', $ptc, $taxonomy );
                if(in_array($term, $product_terms)){ 
                    echo '<li class="current-cat"><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';
                } else {
                    echo '<li><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';
                }

Но он по-прежнему не возвращает ничего с дополнительным классом, хотя я знаю, что один из них находится в массиве... Есть идеи, как заставить это работать?

 1
Author: Tom, 2012-02-17

1 answers

Это зависит от того, какого типа значения из вашего массива $product_terms.

Если у вас там есть строки, например, слагаемые терминов, то вы, вероятно, захотите проверить, существует ли $term->slug.

Если у вас есть объекты, то убедитесь, что массив индексирован, а не ассоциативен. Для ассоциативных массивов используйте array_key_exists() вместо этого.

 2
Author: onetrickpony, 2012-02-17 23:45:32