Intereting Posts
Как WordPress сообщает, какая почта находится на каком-либо сайте в многоуровневой настройке? Получение сообщений в категории пользовательских сообщений типа ui qTranslate с моей собственной темой и настройками Как добавить встроенный предварительный просмотр в текстовый обмен? Могу ли я использовать собственный идентификатор приложения Facebook с этим плагином для социальных комментариев? Фильтровать весь вывод html Загружать несколько изображений в пользовательский обмен Добавьте вариант к детской теме Twenty Eleven Найти первое изображение в paginated post для Pinterest Самый быстрый способ создания уникального идентификационного номера при регистрации пользователя запрос для создания продуктов woocommerce из изображений Можно добавить add_image_size раньше WordPress Tag Cloud args (font-size) не работает с момента обновления wp 4.9 Неопределенная постоянная ошибка в pluggable.php Могу ли я скрыть конкретную запись с последней страницы сообщений?

Отображать пользовательскую мета на странице, которая была проверена в пользовательском типе сообщения

Я создал настраиваемый тип сообщения (cpt), и в каждом типе post это настраиваемое мета-поле.

Это настраиваемое мета-поле отображает все страницы, которые можно «проверить».

Код для генерации настраиваемого мета-поля:

// display list of pages with check box function page_meta_box( $post ) { // Nonce to verify intention later wp_nonce_field( 'save_quote_meta', 'custom_nonce' ); // we store data as an array, we need to unserialize it $checkfield = maybe_unserialize( get_post_meta($post->ID, 'checkfieldBox', true) ); $pages = get_pages(); foreach ( $pages as $page ) { ?> <input id="page_<?php echo $page->ID; ?>" type="checkbox" name="checkfield[]" value="<?php echo $page->ID; ?>" <?php if ( in_array($page->ID, $checkfield) ) { ?>checked="checked" <?php } ?>/> <label for="page_<?php echo $page->ID; ?>"><?php echo $page->post_title; ?></label><br> <?php } } 

Код для сохранения пользовательских значений метаданных:

 //save the meta box action add_action( 'save_post', 'myplugin_meta_save', 10, 2 ); //save the meta box function myplugin_meta_save($post_id, $post) { if ( isset($_POST['checkfield']) ) { // if we get new data update_post_meta($post_id, 'checkfieldBox', $_POST['checkfield'] ); } } 

Запрос, который я использую для отображения пользовательских типов сообщений на лицевой стороне:

 <?php $query = new WP_Query( array( 'post_type' => 'sidebar_boxes', 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ) ); while ( $query->have_posts() ) : $query->the_post(); ?> <div class="sidebarBox floatLeft"> <?php if (has_post_thumbnail()) { ?> <?php the_post_thumbnail();?> <?php } ?> <div class="sideBoxText"> <?php // Content here ?> </div> </div> <?php endwhile; wp_reset_query(); ?> 

Вышеприведенный код отображает CPT без проблем.

Моя проблема заключается в том, как отобразить пользовательский тип сообщения на проверенной странице. В настоящее время они все появляются.

Например, если я проверяю страницу «about» на странице CPT на панели управления, как я могу отобразить эту информацию на странице about (front end)

Любая помощь очень ценится.

Solutions Collecting From Web of "Отображать пользовательскую мета на странице, которая была проверена в пользовательском типе сообщения"

Вам просто нужен meta_query основанный на идентификаторе текущей страницы:

 $query = new WP_Query( array( 'post_type' => 'sidebar_boxes', 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'meta_query' => array( 'key' => 'checkfieldBox', 'value' => $post->ID, ) ) ); 

Вы действительно можете зависеть только от $post так, как я делал это на «особых» страницах, и только если объект $post не был изменен кодом на странице. Если у вас есть проблемы, вам нужно будет использовать:

 $post_obj = get_queried_object(); // now use $post_obj->ID instead of $post->ID