janochen
  • 0
Мастер

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

  • 0

Это правильно сортирует сообщения по голосованию ( плагин звездного рейтинга 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; ?>
Share
  1. Кажется, GD Star Rating используетget_query_var() для чтения переменные запроса, которые считывают только эту глобальную $wp_query переменную. query_posts() перезаписывает глобальную $wp_query переменную, поэтому там она работает, но создание новой WP_Query (что является хорошей практикой) не сработает. Вы должны связаться с автором плагина и попросить исправить.

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

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

Оставить ответ

You must login to add an answer.