Intereting Posts
Миграция не-WordPress CMS в WordPress, много данных для перемещения – возможные решения? Отключить или перенаправить WP-login.php Лучшее действие для создания пользовательского сообщения и присвоение ему таксономических условий при активации плагина? Создание плагина для дезинфекции комментария и поля url перед отображением только wp_schedule_event не будет принимать аргументы Как я могу получить «предыдущий» и «следующий», чтобы показывать в навигации помимо ссылок? Пользовательский статус комментариев возможен? Автоматически добавлять надпись на изображении Перемещение wordpress с localhost на сервер вызывает ошибку доступа к панели администратора? Удалить визуальный редактор и теги P из описаний таксономии WooCommerce post_date vs. post_modified – какая разница? Всплывающее окно или уведомление администратора / обновления на экране редактирования страницы / страницы без обновления страницы. Пользовательские типы сообщений: пользовательские столбцы с подменю Title? Получить тип пользователя автора Пользовательский тип сообщения «иерархическая» Справка!

Отображение сохраненных данных метаданных в раскрывающемся списке с выбранными ()

У меня есть специальный мета-ящик для определенных пользовательских типов сообщений, и одно из этих полей в мета-окне – это выпадающее меню.

Я правильно предоставляю поле, сохраняю информацию и даже правильно ее вызываю (поэтому я знаю, что она сохраняется правильно), однако, когда вы возвращаетесь для редактирования сообщения или обновления, в раскрывающемся списке всегда есть первый <select> , который, я боюсь, путают некоторых людей, которые редактируют эти типы сообщений в будущем.

Например, если редактор выбирает «Вариант 2», затем удаляет публикацию или обновление, «Вариант 2» сохраняется и вызывается в цикле, но в раскрывающемся списке сразу появляется «Вариант 1».

Есть ли способ, чтобы выбранная опция «selected» была отображена сверху или вверху списка, поэтому она отображается в редакторе как сохраненная?

Мой код функций:

 function meta_options(){ global $post; $custom = get_post_custom($post->ID); $price = $custom["price"][0]; $selected = isset( $values['location'] ) ? esc_attr( $values['location'][0] ) :''; ?> <label>Price:</label><input name="price" value="<?php echo $price; ?>" /> <label>Location : </label> <br /> <select name="location" id="location"> <option value="Option 1" <?php selected( $selected, 'Option 1' ); ?>>Option 1</option> <option value="Option 2" <?php selected( $selected, 'Option 2' ); ?>>Option 2</option> </select> <?php } ?> 

и затем сохраняя эту информацию:

 function save_price(){ global $post; update_post_meta($post->ID, "price", $_POST["price"]); update_post_meta( $post->ID, 'location', esc_attr( $_POST['location'] )); } 

Правильно ли я делаю это? Есть ли простой способ сделать это?

Большое спасибо.

Solutions Collecting From Web of "Отображение сохраненных данных метаданных в раскрывающемся списке с выбранными ()"

<?php selected() ?> сравнивает значение сохраненных данных и какая опция должна отображаться первой, моя ошибка заключалась в том, что я не хранил переменную, чтобы ее правильно сравнивать.

 $selected = isset( $values['location'] ) ? esc_attr( $values['location'][0] ) : ”; 

следует изменить на:

 $selected = isset( $custom['location'] ) ? esc_attr( $custom['location'][0] ) : ”; 

Это была простая синтаксическая ошибка с моей стороны, поскольку я неправильно ссылался на переменную. После того, как это было изменено, <?php selected( $selected, 'Option 1' ); ?> функция <?php selected( $selected, 'Option 1' ); ?> <?php selected( $selected, 'Option 1' ); ?> будет сравнивать переменную с строкой на месте, а затем отображать selected="selected" чтобы поместить этот раскрывающийся элемент сверху.