Intereting Posts
Страницы запросов на основе тегов Неработающее мобильное меню для мобильных телефонов TwentyTwelve не работает Лучший способ назначить должность на главной странице новостного сайта? (без категорий, без липких сообщений) Как изменить домашнюю страницу по умолчанию для панели управления WordPress? Перечислить подстраницу подстраницы Как добавить содержимое настраиваемого поля в список терминов таксономии? WordpPress 4.8.1 php получает комментарий Как добавить раздел в конфигурацию меню, предлагая жестко закодированные элементы? параметр orderby не работает в пользовательском запросе установить панель администратора для видимых для авторов, авторов, модераторов и администраторов Когда использовать дочернюю тему для WooCommerce Storefront? Получить текущий URL-адрес пользователя в нескольких сайтах? Как переписать пользовательский тип сообщения с помощью пользовательских URL-адресов таксономии? Отображение списка пользователей ACF Это не работает для плагина get_template_directory_uri ()

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

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

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