Intereting Posts
Получить имя меню для nav_menu_item WordPress on git – нужна помощь с настройкой Может кто-нибудь, пожалуйста, скажите мне, что не так с моим плагином? Создание плагина wordpress, в котором пользователи могут переопределять шаблоны Вставьте атрибуты ширины и высоты для всех изображений, отображаемых на каждой странице Расширенный или не очень продвинутый запрос pre_get_posts Отключить h1 и h2 из редактора комбинированного текстового редактора Как вы можете быть уверены, что записи авторов более 250 слов? 404 и индекс Google Кнопка загрузки в мета-окне, не открывающей библиотеку Последние / Последние сообщения Metabox сохраняет информацию об обновлении или публикации, но не о сохранении черновика Сообщение / название страницы для перманентной трансформации – что за кулисами? удалить строку запроса с главной страницы Действие по установке WordPress

Как мне показать текущее значение базы данных 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' ] ) ); }