Home > Back-end >  Return the ID of the selected terms to array
Return the ID of the selected terms to array

Time:03-06

My terms have an additional ACF true/false field. I need to get a list of all the term IDs with the field enabled and return a list of these IDs.

So far I have achieved such a code, but it returns me only one ID:

function terms_exclude_id_func()
    {
        $terms_control = get_terms([
            'taxonomy'      => 'product_cat',
            'hide_empty'    => false,
            'meta_query'    => [
                [
                    'key'       => 'glob_menu',
                    'value'     => '1',
                ]
            ]
        ]);
        foreach ($terms_control as $term_control) {
            $IDs = $term_control->term_id;
        }
        return $IDs;
    }

    echo terms_exclude_id_func();

I need echo terms_exclude_id_func(); to return something like this 688, 534, 827

I will be grateful for any help in this matter. I'm just learning myself)

CodePudding user response:

in your foreach loop, $IDs must be an array, and you need to push the values into it, not redefine its value:

function terms_exclude_id_func()
    {
        $terms_control = get_terms([
            'taxonomy'      => 'product_cat',
            'hide_empty'    => false,
            'meta_query'    => [
                [
                    'key'       => 'glob_menu',
                    'value'     => '1',
                ]
            ]
        ]);
        $IDs = array(); // define the variable as an array
        foreach ($terms_control as $term_control) {
            $IDs[] = $term_control->term_id; // push to the array
        }
        return $IDs;
    }

  • Related