Я не проверял это еще, но я думаю, что это должно работать:
function save_custom_meta_box($post_id, $post, $update) {
// Check if user is allowed to edit this
if(!current_user_can("edit_post", $post_id))
return $post_id;
// Don't save meta on auto save
if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE)
return $post_id;
// Check if post-type (Change $slug to post-type metabox is in)
$slug = "post";
if($slug != $post->post_type)
return $post_id;
$meta_box_dropdown_value = "";
// If has value to save (remember to change "metabox-name" to the dropdown name).
if(isset($_POST["artist_dropdown"])) {
$meta_box_dropdown_value = $_POST["artist_dropdown"];
}
// Save the meta under meta-key "artist"
update_post_meta($post_id, "artist", $meta_box_dropdown_value);
}
add_action("save_post", "save_custom_meta_box", 10, 3);
Я надеюсь, что комментарии, объясняя это для вас. Не забудьте заменить упомянутые значения.
Вам также понадобится добавить функцию к выведенному выпадающему меню, какое значение выбрать после сохранения значения. Таким образом, оказываются выпадающий в METABOX должны выглядеть примерно так:
<select name="artist_dropdown">
<?php
$args = array(
'post_type' => array('music_artist')
);
$posts = get_posts($args);
$option_values = array();
if ($posts) {
foreach ($posts as $post) {
$artistFirstname = get_post_meta($post->ID, 'artist_firstname', true);
$artistLastname = get_post_meta($post->ID, 'artist_lastname', true);
$option_values[] = $artistFirstname . ' ' . $artistLastname;
}
}
foreach($option_values as $key => $value) {
if($value == get_post_meta($object->ID, "artist", true)) {
?>
<option selected><?php echo $value; ?></option>
<?php
} else {
?>
<option><?php echo $value; ?></option>
<?php
}
}
?>
</select>
Btw, вот хороший учебник по creating and saving wordpress metaboxes. Вы должны также проверить CMB2, который является удивительными инструментами для построения метабоксы.
Как вы показываете падение? У вас больше кода для показа? Как вы хотите сохранить параметры? –
Я хочу сохранить выбранный вариант после обновления и использования на веб-сайте –