为什么GDSR_SORT=Thumbs(GD开始评级插件)只适用于QUERY_POST,而不适用于WP_QUERY?

时间:2011-03-24 作者:janoChen

这可以通过拇指投票对帖子进行正确排序(GD star rating 插件):

<?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; ?>

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

看来GD Star Rating uses get_query_var() 读取查询变量,该变量仅读取此全局变量$wp_query 变量query_posts() 覆盖全局$wp_query 变量,所以它在那里工作,但创建一个新的WP_Query (这是一个很好的做法)行不通。您应该联系插件作者并请求修复。

SO网友:bbakersmith

Cilvic的建议对我有用。在使用WP\\u查询之前,只需设置GET参数。

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

相关推荐

为什么GDSR_SORT=Thumbs(GD开始评级插件)只适用于QUERY_POST,而不适用于WP_QUERY? - 小码农CODE - 行之有效找到问题解决它

为什么GDSR_SORT=Thumbs(GD开始评级插件)只适用于QUERY_POST,而不适用于WP_QUERY?

时间:2011-03-24 作者:janoChen

这可以通过拇指投票对帖子进行正确排序(GD star rating 插件):

<?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; ?>

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

看来GD Star Rating uses get_query_var() 读取查询变量,该变量仅读取此全局变量$wp_query 变量query_posts() 覆盖全局$wp_query 变量,所以它在那里工作,但创建一个新的WP_Query (这是一个很好的做法)行不通。您应该联系插件作者并请求修复。

SO网友:bbakersmith

Cilvic的建议对我有用。在使用WP\\u查询之前,只需设置GET参数。

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

相关推荐