Intereting Posts
Синтаксис Highlighter XML striping Как заменить комментарии по умолчанию на пользовательский HTML? Автоматическая сортировка сообщений по настраиваемому полю Перемещение wordpress из общего каталога Отображать продукты с одинаковым атрибутом, отсортированные по категориям в woocommerce Не удается загрузить изображения из-за ошибки разрешений add_filter ('media_send_to_editor', …) не работает на wp 3.5 Добавить таксономию в архив пользовательского типа Изменить Постоянная ссылка только на новые сообщения Можно ли изменить существующий статус сообщения от «ожидающего» до «публикации» по электронной почте? Ошибка: удаление файла, а затем загрузка того же файла снова помещает файл в папку старого месяца Аутентификация сайта WordPress через другую установку WordPress? переменные pre_get_posts Фильтр / ошибка администратора, если сообщение слишком длинное Правильное использование фильтрации_состояния

Получить сообщение meta для получения неправильного значения

Я создал специальный мета-ящик с текстовым полем, в котором пользователь может ввести пользовательское значение в качестве дополнительного идентификационного тега. Я думал, что все правильно, но когда я пытаюсь получить значение, оно дает мне идентификатор post вместо введенного пользовательского значения.

Мне жаль, если сообщение слишком длинное, но я хочу быть основательным. Чтобы получить сообщение meta, я использую следующее:

<?php $meta_values = get_post_meta( the_ID(), newtheme_section_id); ?> 

Я добавляю код, который я использовал для создания мета-поля, и я надеюсь, что кто-то может мне помочь. Благодарю.

 /** * Sets up custom section ID meta box in admin post and edit pages. * * @since newtheme 1.0 */ add_action( 'load-post.php', 'section_id_meta_box_setup' ); add_action( 'load-post-new.php', 'section_id_meta_box_setup' ); /* Meta box setup function. */ function section_id_meta_box_setup() { /* Add meta box on the 'add_meta_boxes' hook. */ add_action( 'add_meta_boxes', 'newtheme_section_id_meta_boxes' ); /* Save post meta on the 'save_post' hook. */ add_action( 'save_post', 'newtheme_save_section_id_meta', 10, 2 ); } /* Create meta box to be displayed on the post editor screen. */ function newtheme_section_id_meta_boxes() { add_meta_box( 'newtheme-section-id', // Unique ID esc_html__( 'Custom Section ID', 'ID' ), // Title 'newtheme_section_id_meta_box', // Callback function 'post', // Admin page (or post type) 'side', // Context 'default' // Priority ); } /* Display the post meta box. */ function newtheme_section_id_meta_box( $object, $box ) { ?> <?php wp_nonce_field( basename( __FILE__ ), 'newtheme_section_id_nonce' ); ?> <p> <label for="newtheme-section-id"><?php _e( "You can give your section a name and it will appear in the menus. ", 'Optional' ); ?></label> <br /> <input class="widefat" type="text" name="newtheme-section-id" id="newtheme-section-id" value="<?php echo $text; ?>" size="30" /> </p> <?php } /* Save the meta box's post metadata. */ function newtheme_save_section_id_meta( $post_id, $post ) { /* Verify the nonce before proceeding. */ if ( !isset( $_POST['newtheme_section_id_nonce'] ) || !wp_verify_nonce( $_POST['newtheme_section_id_nonce'], basename( __FILE__ ) ) ) return $post_id; /* Get the post type object. */ $post_type = get_post_type_object( $post->post_type ); /* Check if the current user has permission to edit the post. */ if ( !current_user_can( $post_type->cap->edit_post, $post_id ) ) return $post_id; /* Get the posted data and sanitize it for use as an HTML class. */ $new_meta_value = ( isset( $_POST['newtheme-section-id'] ) ? sanitize_html_class( $_POST['newtheme-section-id'] ) : '' ); /* Get the meta key. */ $meta_key = 'newtheme_section_id'; /* Get the meta value of the custom field key. */ $meta_value = get_post_meta( $post_id, $meta_key, true ); /* If a new meta value was added and there was no previous value, add it. */ if ( $new_meta_value && '' == $meta_value ) add_post_meta( $post_id, $meta_key, $new_meta_value, true ); /* If the new meta value does not match the old value, update it. */ elseif ( $new_meta_value && $new_meta_value != $meta_value ) update_post_meta( $post_id, $meta_key, $new_meta_value ); /* If there is no new meta value but an old value exists, delete it. */ elseif ( '' == $new_meta_value && $meta_value ) delete_post_meta( $post_id, $meta_key, $meta_value ); 

EDIT: Я пытаюсь показать значение, которое пользователи вводят в новый тег ID на странице, где появляются сообщения, поэтому в каждом сообщении будет отображаться пользовательский тег идентификатора, введенный пользователем.

Вот код, с которым я пытаюсь это сделать.

  <?php $post_id = get_the_ID(); ?> <?php $value = get_post_meta($post_id, 'newtheme_section_id'); ?> <id="<?php $value; ?>"> 

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

Пожалуйста, найдите время, чтобы прочитать Кодекс. the_ID echo s . Это означает, что идентификатор никогда не передается get_post_meta . Это просто echo на месте. Из той же страницы Кодекса:

Примечание. Эта функция отображает идентификатор сообщения, для возврата идентификатора используйте get_the_ID ().

Итак, вместо этого используйте get_the_ID .

Вторая проблема … цитируйте свою строку. Поскольку у вас это написано, PHP попытается и, скорее всего, не удастся найти константу с именем newtheme_section_id . Я не думаю, что это предназначено.

 $meta_values = get_post_meta( get_the_ID(), 'newtheme_section_id' ); 

Если этот код находится в Loop , он должен работать.