Intereting Posts
Функция заставляет edit_post_link ссылаться на неправильную запись Профилирование веб-сайта WordPress для развертывания на общем хостинге? WordPress Multisite – тема автоматической активации Вставить и заказать пользовательские типы сообщений в / в подменю Исключить все помеченные сообщения из цикла WP_Query Сайт WP только показывает Javascript для главной страницы Не разумно ли использовать только мета-возможности для определенных базовых типов сообщений? контактная форма на веб-сайте возвращает ошибку Ajax (подробнее в консоли) ' Worpress поиск определенного типа сообщения Как отредактировать / заменить функцию Parent functions.php в Child Theme, чтобы добавить класс «Walker» Что заставляет переходный процесс изменять статус на «Не истекает»? Штрих-код WordPress в содержимом, вывод в боковой панели? term_exists (), возвращающий NULL на срок, который существует Создание коротких кодов по таксономии Как добавить ручную разметку в WP Query для разбивки на страницы

Как мне показать текущее значение базы данных Metabox?

<p> <?php $options = get_option( 'city' ); $names = explode( PHP_EOL, $options ); ?> <label for="City" class="timeshare-row-title"><?php _e( 'City:', 'timeshare-textdomain' )?></label> <select name="city" id="city"> <?php foreach ( $names as $name ) { printf( '<option value="%s" selected="selected">%s</option>', $name, $name ); } ?> </select> </p> 

Функция сохранения:

  if( isset( $_POST[ 'city' ] ) ) { update_post_meta( $post_id, 'city', sanitize_text_field( $_POST[ 'city' ] ) ); } 

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

 <p> <label for="beds" class="timeshare-row-title"><?php _e( 'Bedrooms:', 'timeshare-textdomain' )?></label> <select name="beds" id="beds"> <option value="1" <?php if ( isset ( $timeshare_stored_meta['beds'] ) ) selected( $timeshare_stored_meta['beds'][0], '1' ); ?>><?php _e( '1', 'timeshare-textdomain' )?></option>'; <option value="2" <?php if ( isset ( $timeshare_stored_meta['beds'] ) ) selected( $timeshare_stored_meta['beds'][0], '2' ); ?>><?php _e( '2', 'timeshare-textdomain' )?></option>'; <option value="3" <?php if ( isset ( $timeshare_stored_meta['beds'] ) ) selected( $timeshare_stored_meta['beds'][0], '3' ); ?>><?php _e( '3', 'timeshare-textdomain' )?></option>'; <option value="4" <?php if ( isset ( $timeshare_stored_meta['beds'] ) ) selected( $timeshare_stored_meta['beds'][0], '4' ); ?>><?php _e( '4', 'timeshare-textdomain' )?></option>'; </select> </p> and the save code for it: // Checks for input and saves if needed if( isset( $_POST[ 'beds' ] ) ) { update_post_meta( $post_id, 'beds', $_POST[ 'beds' ] ); } 

Функция сохранения:

 function timeshare_meta_save( $post_id ) { // Checks save status $is_autosave = wp_is_post_autosave( $post_id ); $is_revision = wp_is_post_revision( $post_id ); $is_valid_nonce = ( isset( $_POST[ 'timeshare_nonce' ] ) && wp_verify_nonce( $_POST[ 'timeshare_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false'; // Exits script depending on save status if ( $is_autosave || $is_revision || !$is_valid_nonce ) { return; } 

Solutions Collecting From Web of "Как мне показать текущее значение базы данных Metabox?"

Из ваших опубликованных файлов Github функция, которая печатает мета-окно, это

 function timeshare_meta_callback( $post ) { 

Как вы можете видеть, $post передается этой функции. Это объект WP_Post, который содержит всю информацию этого сообщения.

WP_Post имеет переменную-член с именем ID , которая необходима для получения текущего мета-значения текущей записи. Итак, вам нужно сделать это, чтобы получить идентификатор сообщения

 $post_id = $post->ID; 

Вот полный код

 <p> <?php $post_id = $post->ID; $options = get_option( 'city' ); $city_value = get_post_meta( $post_id, 'city', true ); $names = explode( PHP_EOL, $options ); ?> <label for="City" class="timeshare-row-title"><?php _e( 'City:', 'timeshare-textdomain' )?></label> <select name="city" id="city"> <?php foreach ( $names as $name ) { printf( '<option value="%s" %s>%s</option>', $name, selected($name, $city_value, false), $name ); } ?> </select> </p> 

Противоположно во время сохранения передается только пост id, что можно увидеть здесь.

 function timeshare_meta_save( $post_id ) { 

Таким образом, вы можете сделать это, чтобы сохранить значение метаданных

  if( isset( $_POST[ 'city' ] ) ) { update_post_meta( $post_id, 'city', sanitize_text_field( $_POST[ 'city' ] ) ); }