Я использую CMB2's select, чтобы вытащить список сообщений, которые пользователь может выбрать из него в настраиваемом мета-окне.Настройка параметра по умолчанию с использованием CMB2 select field type
Я добавил «пустую» опцию в массив параметров, но не могу понять, как сделать эту опцию по умолчанию (то есть <option selected="selected" value="">I'm blank</option>
).
Мне нужно сделать это, чтобы я мог использовать оператор if, который говорит, что если поле пустое, не показывайте окно вывода на сайте. Прямо сейчас, даже если пользователь специально не выбрал опцию, пропускается опция со значением.
Вот мета код коробки:
$link_post_types = array('charter', 'page');
$meta_boxes['ms_metabox'] = array(
'id' => 'ms_metabox',
'title' => __('Page Links', 'cmb2'),
'object_types' => array('page'),
'context' => 'normal',
'priority' => 'high',
'show_names' => true,
'fields' => array(
array(
'name' => __('Page Link', 'cmb2'),
'desc' => __('Choose the page this will link to', 'cmb2'),
'id' => $prefix . 'page_link',
'type' => 'select',
'options' => ms_get_posttype_options($link_post_types),
),
),
);
function ms_get_posttype_options($argument) {
$get_post_args = array(
'post_type' => $argument,
'posts_per_page' => -1,
'orderby' => 'type',
'order' => ASC
);
$options = array();
foreach (get_posts($get_post_args) as $post) {
$post_type = get_post_type($post->ID);
$title = get_the_title($post->ID);
$permalink = get_permalink($post->ID);
$options[] = array(
'name' => $title . ' : ' . $post_type,
'value' => $permalink,
);
}
$empty_option[] = array(
'name' => 'Please select an option',
'value' => '',
);
$options = array_merge($empty_option, $options);
return $options;
}
Существует default
аргумент, но когда я попытался применить его, как в примере, это не сработало.
Спасибо за помощь!