how to populate dropdown with terms from a taxonomy
-
I found a solution online but it just wasn’t enough. It’s currently pulling the terms, but I wanted them to be relative to the post that I’m on.
What I mean, and to give more context. I am posting a cf7 form on a job posting. The job posting has a taxonomy for location terms. I am displaying these terms on the page itself as part of the job description.
The dropdown shows ALL terms though, I need it to show only the ones that the post displays, otherwise the user could select a location that’s not applicable.
This is the code:
function dynamic_select_list( $tag ) { // Only run on select lists if( 'select' !== $tag['type'] && ('select*' !== $tag['type']) ) { return $tag; } else if ( empty( $tag['options'] ) ) { return $tag; } $term_args = array(); // Loop thorugh options to look for our custom options foreach( $tag['options'] as $option ) { $matches = explode( ':', $option ); if( ! empty( $matches ) ) { switch( $matches[0] ) { case 'taxonomy': $term_args['taxonomy'] = $matches[1]; break; case 'parent': $term_args['parent'] = intval( $matches[1] ); break; } } } // Ensure we have a term arguments to work with if( empty( $term_args ) ) { return $tag; } // Merge dynamic arguments with static arguments $term_args = array_merge( $term_args, array( 'hide_empty' => false, ) ); $terms = get_terms( $term_args ); // Add terms to values if( ! empty( $terms ) && ! is_wp_error( $term_args ) ) { foreach( $terms as $term ) { $tag['values'][] = $term->name; } } return $tag; } add_filter( 'wpcf7_form_tag', 'dynamic_select_list', 10 );
- The topic ‘how to populate dropdown with terms from a taxonomy’ is closed to new replies.