Title: Problems using the Loop in a plugin
Last modified: August 19, 2016

---

# Problems using the Loop in a plugin

 *  [ParanoidSardine](https://wordpress.org/support/users/paranoidsardine/)
 * (@paranoidsardine)
 * [16 years, 5 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/)
 * Hi…I’m trying to use the loop in a plugin to populate a select element. When 
   I call the loop, I’m getting no results. I have many posts on my development 
   setup, but they do not seem to be accessible. I’m trying to run this code in 
   a submenu page in the administration panel.
 * Here’s the code I’ve been using:
 *     ```
       // Get all posts for the select options
       	if(have_posts())
       	{
       		while(have_posts())
       		{
       			the_post();
   
       			$titles[$post->ID] = the_title();
       		}
       	}
       ```
   
 * Also, I’ve played around with using the $wp_query objecy:
 *     ```
       global $wp_query;
   
       	print_r($wp_query);
       ```
   
 * This code returns:
 * > WP_Query Object ( [query] => [query_vars] => Array ( ) [queried_object] => [
   > queried_object_id] => [request] => [posts] => [post_count] => 0 [current_post]
   > => -1 [in_the_loop] => [post] => [comments] => [comment_count] => 0 [current_comment]
   > => -1 [comment] => [found_posts] => 0 [max_num_pages] => 0 [max_num_comment_pages]
   > => 0 [is_single] => [is_preview] => [is_page] => [is_archive] => [is_date] 
   > => [is_year] => [is_month] => [is_day] => [is_time] => [is_author] => [is_category]
   > => [is_tag] => [is_tax] => [is_search] => [is_feed] => [is_comment_feed] =>[
   > is_trackback] => [is_home] => [is_404] => [is_comments_popup] => [is_admin]
   > => [is_attachment] => [is_singular] => [is_robots] => [is_posts_page] => )
 * Can anyone help me figure out why I cannot get this post information?

Viewing 6 replies - 1 through 6 (of 6 total)

 *  [vtxyzzy](https://wordpress.org/support/users/vtxyzzy/)
 * (@vtxyzzy)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348135)
 * Try putting `rewind_posts();` ahead of your `if (have_posts())`. See the Codex
   [http://codex.wordpress.org/The_Loop](http://codex.wordpress.org/The_Loop), especially
   the section ‘Loop Examples’. Search for rewind.
 *  Thread Starter [ParanoidSardine](https://wordpress.org/support/users/paranoidsardine/)
 * (@paranoidsardine)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348167)
 * Thanks for the idea, but it does not seem to work. I was able to get what I wanted
   by doing this:
 *     ```
       // Print out the select forms
       global $wpdb;
       $query = "SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC";
       $posts = $wpdb->get_results($query);
   
       if(count($posts) > 0) // equivalent to have_posts()
       {
       	foreach($posts as $post) // equivalent to while(have_posts())
       	{
       		echo '<option value="'.$post->ID.'">"'.$post->post_title.'" By: '.get_usermeta($post->post_author, 'last_name').', '.get_usermeta($post->post_author, 'first_name').' - Published: '.substr($post->post_date,0,10).'</option>';
       	}
       }
       ```
   
 * I’m still interested to know why the loop wouldn’t work in this context. To my
   knowledge, the loop isn’t called on this page at all. That’s why I don’t think`
   rewind_posts()` helped.
 *  [vtxyzzy](https://wordpress.org/support/users/vtxyzzy/)
 * (@vtxyzzy)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348183)
 * Glad you solved it. Please mark this topic ‘Resolved’ in the dropdown at top 
   right.
 *  Thread Starter [ParanoidSardine](https://wordpress.org/support/users/paranoidsardine/)
 * (@paranoidsardine)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348190)
 * I will play by the rules, but my basic question of why the loop isn’t working
   in the plugin context is still unanswered. I feel like a solution that uses the
   have_posts() functions is better for future compatibility and for my personal
   knowledge, I would like to know the best solution here. Thanks!
 *  [vtxyzzy](https://wordpress.org/support/users/vtxyzzy/)
 * (@vtxyzzy)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348202)
 * Sorry, I thought you were done. When you dumped out $wp_query, it was empty. 
   What type of query did you think should be run on this page? Perhaps you can 
   do your own query_posts() with the arguments you want.
    Then have_posts() should
   work.
 *  Thread Starter [ParanoidSardine](https://wordpress.org/support/users/paranoidsardine/)
 * (@paranoidsardine)
 * [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348207)
 * I’ll give that a try. I have two situations, one in which I want to get all posts
   and another where I needed posts of with a specific category. I will check into
   query_posts to see what I get.

Viewing 6 replies - 1 through 6 (of 6 total)

The topic ‘Problems using the Loop in a plugin’ is closed to new replies.

## Tags

 * [the-loop](https://wordpress.org/support/topic-tag/the-loop/)

 * 6 replies
 * 2 participants
 * Last reply from: [ParanoidSardine](https://wordpress.org/support/users/paranoidsardine/)
 * Last activity: [16 years, 4 months ago](https://wordpress.org/support/topic/problems-using-the-loop-in-a-plugin/#post-1348207)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
