Почему gdsr_sort = thumbs (плагин для начинающего рейтинга GD) работает только с query_posts, а не с WP_Query?

Это правильно сортировать сообщения по большим пальцам голосов (плагин рейтинга звезд GD ):

<?php query_posts('gdsr_sort=thumbs&post_type=bbp_reply&posts_per_page=2&post_parent='.$post->ID); ?> <?php while ( have_posts() ) : the_post(); ?> <h2><?php the_title(); ?></h2> <?php the_content(); ?> <?php endwhile; ?> <?php wp_reset_query(); ?> 

Но это не сортирует их вообще:

  <?php $custom_posts = new WP_Query(); ?> <?php $custom_posts->query('gdsr_sort=thumbs&post_type=bbp_reply&posts_per_page=2&post_parent='.$post->ID); ?> <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <div class="content-block-2"> <?php bbp_reply_author_link( array( 'type' => 'avatar' ) ); ?> <?php bbp_reply_author_link( array( 'type' => 'name' ) ); ?> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a> <?php the_content(); ?> </div> <?php endwhile; ?> 

Кажется, что GD Star Rating использует get_query_var() для чтения переменных запроса, которые читают только эту глобальную переменную $wp_query . query_posts() перезаписывает глобальную переменную $wp_query , поэтому она работает там, но создание нового WP_Query (что является хорошей практикой) не будет работать. Вы должны связаться с автором плагина и попросить исправить его.

Совет Килвика работает для меня. Просто установите параметры GET перед использованием WP_Query.

 $_GET['gdsr_sort'] = 'rating'; $_GET['gdsr_order'] = 'desc';