получите простой массив всех названий терминов, существующих во всех таксономиях
Возможно, я все делаю неправильно, но я пытаюсь использовать термины get, чтобы получить все термины, которые существуют в каждой таксономии.
Я думаю, что это может быть вопрос php.
Get_terms позволяет указать, из каких таксономий он получает термины в массиве, подобном этому...
get_terms( array(post_tag, category, nav_menu, link_category, post_format), $args )
Это работает, но я пишу плагин, и если у людей есть пользовательские таксономии, ручной ввод массива не будет работать. Поэтому я решил, что решением будет использовать таксономию get для создайте этот массив. Проблема в том, что он возвращается в виде ассоциативного массива, а мне нужен простой массив. Поэтому я сделал это...
$myarray = 'array('. implode(', ',get_taxonomies('','names')) .')';
Который, если я повторяю $myarray, возвращает: массив (категория, post_tag, nav_menu, ссылка на категорию, post_format)
Идеально; Это именно то, что я ввел вручную. теперь я должен быть в состоянии вставить $myarray в термины get_get, где я ввел его вручную, и он должен получить все. Нет. Ему это не нравится.
Вот весь фрагмент кода, вместе с фотографией того, что гет повторил. Вы можете видеть, что $myarray точно такой же, как и в рабочих get_terms, но он нарушает вторые get_terms.
$myarray = 'array('. implode(', ',get_taxonomies('','names')) .')';
echo $myarray . '<br/>';
echo 'array(category, post_tag, nav_menu, link_category, post_format) <br/><br/>';
print_r(get_terms( array(post_tag, category, nav_menu, link_category, post_format), $args )); echo '<br /><br />';
print_r(get_terms( $myarray , $args )); echo '<br /><br />';
Результат: http://i.imgur.com/tMJUmaz.jpg
1 answers
Хорошо, поэтому я не знаю, что я делал неправильно, потому что я пробовал это раньше и не мог заставить это работать, но в итоге я использовал array_values()
после того, как несколько человек рекомендовали это в другом потоке.
В конце концов я написал это так:
get_terms( array_values((get_taxonomies('','names'))) , $args );