I have below code to extract all terms from multiple taxonomies,

$taxonomies = array('ingredients','category','course');
                $args = array(
                    'hide_empty' => 0
                $terms = get_terms( $taxonomies, $args);
                $AutoComplete = array();

                foreach($terms as $key => $value) {
                    array_push($AutoComplete[$value->taxonomy] = [$value->name]);
                    echo "<pre>";
                    echo json_encode($AutoComplete);
                    echo "</pre>";

This works fine and gives me the result of

{"ingredients":["Cumin Seeds"],"category":["Uncategorized"],"course":["Main Course"]}

The issue is that the all taxonomies have multiple terms but it returns only one - the last term.

Am I missing any this here?

Thanks Saq

1 Answer 1


I think that problem is at array_push($AutoComplete[$value->taxonomy] = [$value->name]);

Can you replace it with this code and test once?

$AutoComplete[$value->taxonomy][] = [$value->name];
  • Nearly there, I managed the fix with the help of your code, $AutoComplete[$value->taxonomy][] = $value->name;
    – saq
    Feb 25, 2019 at 18:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.