[wp-testers] possible bug in get_posts
michael at mfields.org
michael at mfields.org
Mon Jan 31 23:19:49 UTC 2011
I just tested similar code to what you posted in your last email:
http://wordpress.pastebin.com/srRYBqPF successfully in 3.1-RC3-17376. It
displayed my latest posts as well as the latest entries for 3 custom post
types. I'm not really sure why you are having these issues, but I do not
believe it is due to a bug in get_posts(). Please try the code I posted to
pastebin.
> I tried the code below with the wp_reset_postdata() it seemed to work
> great, until I put a second get_posts loop in the page, after that the 2nd
> one always showed what the first one did despite me change the post_type
> in the query.
>
> This is the actual code I was using.
>
> $posts = '';
>
> // Set options for post query
> $post_args = array(
> 'orderby' => $sort_column,
> 'order' => $sort_order,
> 'numberposts' => $limit,
> 'post_type' => 'post',
> );
>
> wp_reset_postdata();
>
> $theposts = get_posts($post_args);
>
> if (count($theposts)> 0) {
> foreach($theposts as $post) {
> setup_postdata($post);
>
> $posts .= '<li><a href=' . get_permalink() . ' title="' .
> sprintf(esc_attr__('Permalink to %s'), the_title_attribute('echo=0')) .
> '" rel="bookmark">' . get_the_title() .'</a></li>';
> }
>
> $posts_header = (empty($posts_header)) ? __('Posts') : $posts_header;
> $posts = '<div id="wp-realtime-sitemap-posts"><h3>' . $posts_header
> .'</h3><ul>' . $posts .'</ul></div>';
> }
>
> $post_types = get_post_types(array('public' => true, '_builtin' =>
> false), 'objects');
>
> foreach ($post_types as $post_type) {
> $custom_post_type_posts = '';
>
> // Set options for query
> $post_args = array(
> 'orderby' => $sort_column,
> 'order' => $sort_order,
> 'numberposts' => $limit,
> 'post_type' => $post_type->name,
> );
>
> wp_reset_postdata();
>
> $theposts = get_posts($post_args);
>
> if (count($theposts)> 0) {
> foreach($theposts as $post) {
> setup_postdata($post);
>
> $custom_post_type_posts .= '<li><a href=' . get_permalink() . '
> title="' . sprintf(esc_attr__('Permalink to %s'),
> the_title_attribute('echo=0')) . '" rel="bookmark">' . get_the_title()
> .'</a></li>';
> }
>
> $custom_post_types[$post_type->name] = '<div id="wp-realtime-sitemap-' .
> strtolower($post_type->name) . '"><h3>' . $post_type->labels->name .
> '</h3><ul>' . $custom_post_type_posts .'</ul></div>';
> }
> }
>
> wp_reset_postdata();
>
> ------------------------------
>
> Message: 2
> Date: Sun, 30 Jan 2011 17:04:38 -0700
> From:michael at mfields.org
> Subject: Re: [wp-testers] possible bug in get_posts
> To:wp-testers at lists.automattic.com
> Message-ID:
> <487e6bd9d2e9865bf92bf21f9a2d61f4.squirrel at box267.bluehost.com>
> Content-Type: text/plain;charset=iso-8859-1
>
> I don't think that there is a bug in core. Your code looks a bit off to me
> though. Please try the following:
>
> $movies = get_posts( array(
> 'numberposts' => '-1',
> 'post_type' => 'movies',
> ) );
>
> /* Backup global $post object !IMPORTANT! */
> $_post_backup = $post;
>
> foreach( (array) $movies as $post ) {
> setup_postdata( $post );
> print '<li><a href=' . get_permalink() . ' title="' .
> sprintf(esc_attr__('Permalink to %s'), the_title_attribute('echo=0')) .
> '" rel="bookmark">' . get_the_title() .'</a></li>';
> }
>
> /* Restore global $post object !IMPORTANT! */
> $post = $_post_backup;
>
> Best wishes,
> -Mike
>
> _______________________________________________
> wp-testers mailing list
> wp-testers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-testers
>
More information about the wp-testers
mailing list