admin管理员组

文章数量:1193564

My custom Meta Box has a drop down field, but how do I set the default Option Value to be blank? It is currently populating via the CPT's meta_value, but I'd like that to change.

Here's a screenshot of the issue:

I want the first option for the Second Author field to be blank/have no selection.

Code for Meta Box:

            case 'select' :
                $author_select_query = new WP_Query(array(
                    'post_type' => 'people',
                    'tax_query' => array(
                        'relation' => 'OR',
                        array(
                            'taxonomy' => 'role',
                            'field' => 'slug',
                            'terms' => array('adjunct-faculty'),
                        ),
                        array(
                            'taxonomy' => 'role',
                            'field' => 'slug',
                            'terms' => array('faculty'),
                        )
                    ),
                    'meta_key' => 'ecpt_people_alpha',
                    'orderby' => 'meta_value',
                    'order' => 'ASC',
                    'posts_per_page' => '-1')); 
                $authors = $author_select_query ->get_posts();
                echo '<select name="', $field['id'], '" id="', $field['id'], '">';
                foreach($authors as $author) {
                    echo '<option value="' . $author->ID . '"', $meta == $author->ID ? ' selected="selected"' : '', '>', $author->post_title, '</option>';
                }
                echo '</select>';

My custom Meta Box has a drop down field, but how do I set the default Option Value to be blank? It is currently populating via the CPT's meta_value, but I'd like that to change.

Here's a screenshot of the issue:

I want the first option for the Second Author field to be blank/have no selection.

Code for Meta Box:

            case 'select' :
                $author_select_query = new WP_Query(array(
                    'post_type' => 'people',
                    'tax_query' => array(
                        'relation' => 'OR',
                        array(
                            'taxonomy' => 'role',
                            'field' => 'slug',
                            'terms' => array('adjunct-faculty'),
                        ),
                        array(
                            'taxonomy' => 'role',
                            'field' => 'slug',
                            'terms' => array('faculty'),
                        )
                    ),
                    'meta_key' => 'ecpt_people_alpha',
                    'orderby' => 'meta_value',
                    'order' => 'ASC',
                    'posts_per_page' => '-1')); 
                $authors = $author_select_query ->get_posts();
                echo '<select name="', $field['id'], '" id="', $field['id'], '">';
                foreach($authors as $author) {
                    echo '<option value="' . $author->ID . '"', $meta == $author->ID ? ' selected="selected"' : '', '>', $author->post_title, '</option>';
                }
                echo '</select>';
Share Improve this question asked Nov 3, 2014 at 17:44 timmygtimmyg 1251 gold badge2 silver badges16 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 2

Before the foreach loop:

foreach($authors as $author) {

Add this empty option element:

echo '<option value="0"></option>';

Hope it works! :)

Building on the accepted answer, adding this worked for me:

<option value="" selected="selected"></option>

The empty value worked for me, and I was able to identify when there was nothing selected and allowed the users to select nothing again in case they made a wrong selection.

本文标签: custom post typesSet Default Option Value as Blank for Meta Box