Как определить, находится ли определенный термин в массиве?
В настоящее время я использую приведенный ниже 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
1 answers
Это зависит от того, какого типа значения из вашего массива $product_terms
.
Если у вас там есть строки, например, слагаемые терминов, то вы, вероятно, захотите проверить, существует ли $term->slug
.
Если у вас есть объекты, то убедитесь, что массив индексирован, а не ассоциативен. Для ассоциативных массивов используйте array_key_exists()
вместо этого.
2
Author: onetrickpony, 2012-02-17 23:45:32