Запросить пользовательские сообщения – Добавить в выбор

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

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

Это то, что, кажется, испортило мою постоянную ссылку.

function show_custom_meta_box_org() { global $post; $org = new WP_Query( array( 'post_type' => 'organizations', 'orderby' => 'menu_order', 'order' => 'ASC' ) ); // Use nonce for verification echo '<input type="hidden" name="orglist_meta_box_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; // get value of this field if it exists for this post $meta = get_post_meta($post->ID, '_orglist', true); ?> <table class="form-table" id="orgList"> <tr> <td> <select id="selectorg" name="_orglist"> <option value="">Select Organization</option> <?php while($org->have_posts()) : $org->the_post(); ?> <option value="<?php echo $post->post_name; ?>"><?php the_title(); ?></option> <?php endwhile; ?> </select> </td> </tr> </table> <?php } 

Solutions Collecting From Web of "Запросить пользовательские сообщения – Добавить в выбор"

Используйте wp_reset_postdata(); для восстановления глобальной переменной $ post основного цикла запроса после вторичного цикла запросов с использованием нового WP_Query. Он восстанавливает переменную $ post текущей записи в основном запросе.

вызовите wp_reset_postdata(); после окончания endwhile;

 <?php while($org->have_posts()) : $org->the_post(); ?> <option value="<?php echo $post->post_name; ?>"><?php the_title(); ?></option> <?php endwhile; // reset main query wp_reset_postdata(); ?>