WordPress.org

Support

Support » Plugins and Hacks » [Resolved] WP_Query loop inside widget error

[Resolved] WP_Query loop inside widget error

  • Driftless
    Member

    @driftless1

    I’m having issues with a custom wp_query in the widget. This code works fine throughout my site:

    <?php
    $facts = custom_wp_query('3'); //get 3 results
      //echo "<pre>"; print_r($facts); echo "</pre>";
    while ( $facts->have_posts() ) : $facts->the_post();
      echo "<pre>"; print_r($post); echo "</pre>";//This works elsewhere
    endwhile;
    ?>

    The custom query gives me 3 wp_post objects in $facts as expected. However, the while loop fails saying $post is not defined. This works elsewhere on my site, but not in this widget. What am I missing?

    http://wordpress.org/extend/plugins/php-code-widget/

Viewing 4 replies - 1 through 4 (of 4 total)
  • Driftless
    Member

    @driftless1

    And… it returns the error 3 times, meaning the loop knows there is 3 posts, they just aren’t being shifted to the global $post variable…

    Driftless
    Member

    @driftless1

    Got it working with:

    <?php
    $facts = custom_wp_query('3'); //get 3 results
    while ( $facts->have_posts() ) : $facts->the_post();
      $post = $facts->post;
      echo "<pre>"; print_r($post); echo "</pre>";//This works elsewhere
    endwhile;
    ?>

    Strange that the previous works elsewhere…

    Plugin Author Samuel Wood (Otto)
    Keymaster

    @otto42

    You didn’t declare that the $post was global by using a global $post call anywhere.

    The code inside the widget will run in a function context, not in the global context. You need to declare what variables you’re using that are globals.

    Driftless
    Member

    @driftless1

    Makes sense, thanks.

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘[Resolved] WP_Query loop inside widget error’ is closed to new replies.