Intereting Posts
Добавьте несколько полей из разных таблиц в сообщение, поля за сообщение находятся в одной строке таблицы Как создать html-теги с помощью коротких кодов? Multisite, совместное использование контента по URL-адресу Можно ли удалить или отредактировать функцию include () из функции с помощью фильтра? Тип публикации в календаре Как объединить несколько сайтов в WordPress MU Передача args в WP_User_Query Я использую мета правильно? Как разделить сеанс WordPress и файлы cookie между доменом и субдоменом? Настройки плагина WP Обновление URL-адресов совместного использования eXtended для перетаскивания? способность multi-vender wooCommerce отделять продукты на основе почтового индекса Переупорядочить элементы плагина в меню администратора Первый платеж с подпиской на обновление woocommerce Обновление синхронизации Условные мета-боксы Как добавить Javascript в заголовок всех почтовых страниц и только почтовые страницы

Как сохранить значение раскрывающегося списка настраиваемого поля для публикации ссылок?

Я пытаюсь ссылаться на сообщения друг к другу. Редакторы должны иметь настраиваемый список выбора полей определенных заголовков сообщений, чтобы связать текущую запись с другими сообщениями. Думаю, я довольно далеко. Список выбора отображается правильно. Все названия есть.

Теперь я застрял в точке, где идентификатор упомянутого поста должен быть сохранен.

Как получить значение выбранного параметра, сохранить его и сделать его значением по умолчанию? Нужно ли обертывать все внутри функции формы?

Это то, что у меня есть до сих пор:

add_action("admin_init", "admin_init"); add_action('save_post', 'save_reference_id'); /*** add_meta_box ***/ function admin_init(){ // adding a custom field to post type 'case' add_meta_box("refInfo-meta", "Reference", "meta_options", "case", "side", "high"); } /*** callback ***/ function meta_options(){ ?> <form action="<?php bloginfo('url'); ?>" method="get"> <select name="page_id" id="page_id"> <?php global $post; // getting all child pages of ID 21 $args = array( 'numberposts' => -1, 'post_type' => 'page', 'post_parent' => 21); $posts = get_posts($args); foreach( $posts as $post ) : setup_postdata($post); ?> <option value="<?php echo $post->ID; ?>"><?php the_title(); ?></option> <?php endforeach; ?> </select> </form> <?php } /*** save_post ***/ function save_reference_id(){ // big question mark } 

Solutions Collecting From Web of "Как сохранить значение раскрывающегося списка настраиваемого поля для публикации ссылок?"

selected() была большой помощью для установки значения по умолчанию. Остальное я нашел в этом блестящем мета-учебнике: http://code.tutsplus.com/tutorials/how-to-create-custom-wordpress-writemeta-boxes–wp-20336 с примерами ввода текста, флажками и выпадающим списком , Кроме того, сбой пользовательского типа сообщения становится неправильным, когда добавление настраиваемого мета-поля объясняет мне, как правильно обрабатывать текущий объект post, чтобы он не смешивался с объектами параметров.

 /*** callback ***/ function meta_options(){ global $post; // storing the global post object so it doesn't get mixed up with the options $post_old = $post $custom = get_post_custom($post->ID); if (isset($custom["reference_id"][0])) { $reference_id = $custom["reference_id"][0]; } else { $reference_id = '0'; } ?> <form action="<?php bloginfo('url'); ?>" method="get"> <select name="ref_id" id="ref_id"> <option value="0" <?php selected($reference_id, '0'); ?>>- choose client -</option> <?php global $post; $args = array( 'numberposts' => -1, 'post_type' => 'page', 'post_parent' => 21 ); $posts = get_posts($args); foreach( $posts as $post ) : setup_postdata($post); ?> <option value="<?php echo $post->ID; ?>" <?php selected($reference_id, $post->ID); ?>><?php the_title(); ?></option> <?php endforeach; ?> </select> </form> <?php // restoring the global post object $post = $post_old; setup_postdata( $post ); } /*** save_post ***/ function save_reference_id(){ global $post; if (isset($_POST["ref_id"])) { update_post_meta($post->ID, "reference_id", $_POST["ref_id"]); } } 
 add_action("admin_init", "admin_init"); add_action('save_post', 'save_reference_id'); /*** add_meta_box ***/ function admin_init(){ // adding a custom field to post type 'case' add_meta_box("refInfo-meta", "Reference", "meta_options", "case", "side", "high"); } /*** callback ***/ function meta_options(){ ?> <select name="page_id" id="page_id"> <?php global $post; // getting all child pages of ID 21 $args = array( 'numberposts' => -1, 'post_type' => 'page', 'post_parent' => 21); $posts = get_posts($args); foreach( $posts as $post ) : setup_postdata($post); ?> <option value="<?php echo $post->ID; ?>"><?php the_title(); ?></option> <?php endforeach; ?> </select> <?php } /*** save_post ***/ function save_reference_id($post_id){ update_post_meta($post_id, "[meta_key]", $_POST['page_id']); }