Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress,按评论数对帖子进行排序_Wordpress_Buddypress - Fatal编程技术网

Wordpress,按评论数对帖子进行排序

Wordpress,按评论数对帖子进行排序,wordpress,buddypress,Wordpress,Buddypress,我已经在以下链接上尝试了这些解决方案,但是,我无法让它们中的任何一个显示帖子 http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query http://wordpress.stackexchange.com/questions/1529/displaying-posts-depending-on-number-of-comments-and-latest-comments http://wordpress.org

我已经在以下链接上尝试了这些解决方案,但是,我无法让它们中的任何一个显示帖子

http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
http://wordpress.stackexchange.com/questions/1529/displaying-posts-depending-on-number-of-comments-and-latest-comments
http://wordpress.org/support/topic/sort-by-number-of-comments
这是我的默认代码,我的问题是,如何让代码按注释计数排序

<?php
/*
Template Name: Homepage
*/
get_header(); global $gp_settings, $user_ID, $user_identity, $user_level; 

$referrer = $_SERVER['HTTP_REFERER'];

?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>


    <!-- BEGIN CONTENT -->  

    <div id="content">


        <!-- BEGIN POST CONTENT --> 

        <?php if($post->post_content) { ?>  

            <div id="post-content">
                <?php the_content(__('Read More &raquo;', 'gp_lang')); ?>
            </div>

            <?php } ?>

        <!-- END POST CONTENT -->           


    </div>

    <!-- END CONTENT -->    


<?php endwhile; endif; ?>


<?php get_footer(); ?>

下面是一个我尝试过但没有成功的代码示例

<?php
/*
Template Name: Homepage
*/
get_header(); global $gp_settings, $user_ID, $user_identity, $user_level; 

$referrer = $_SERVER['HTTP_REFERER'];

?>
 <?php

 $querystr = "
SELECT $wpdb->posts.* 
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
AND $wpdb->postmeta.meta_key = 'tag' 
AND $wpdb->postmeta.meta_value = 'email' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_date < NOW()
ORDER BY $wpdb->posts.post_date DESC
 ";

 $pageposts = $wpdb->get_results($querystr, OBJECT);

 ?>
 <?php if ($pageposts): ?>
 <?php global $post; ?>
 <?php foreach ($pageposts as $post): ?>
 <?php setup_postdata($post); ?>

    <!-- BEGIN CONTENT -->  

    <div id="content">


    <!-- BEGIN POST CONTENT --> 

    <?php if($post->post_content) { ?>  

        <div id="post-content">
            <?php the_content(__('Read More &raquo;', 'gp_lang')); ?>
        </div>

    <?php } ?>

    <!-- END POST CONTENT -->           


</div>

<!-- END CONTENT -->    

 <?php endforeach; ?>
 <?php endif; ?>

<?php get_footer(); ?>


经验法则:如果您对默认的Wordpress表运行SQL查询,那么您可能做错了

假设页面原始查询中出现的帖子是正确的,并且您只想修改它们的顺序,那么您可以使用主循环的原始参数来构造新的查询并通过该查询进行循环:

<?php
/*
Template Name: Homepage
*/
get_header(); global $gp_settings, $user_ID, $user_identity, $user_level; 
$referrer = $_SERVER['HTTP_REFERER'];

global $wp_query; //Gets the default query
$default_args = $wp_query->query; //Grabs the original arguments
/*
If you find that the above line returns a string rather than an array,
use this instead:
*/
//parse_str($wp_query->query, $default_args);
$default_args['orderby'] = 'comment_count'; //Set the new order parameter
$q = new WP_Query($default_args); //Generate a new Query

if ($q->have_posts()) : while ($q->have_posts()) : $q->the_post(); //Loop through new Query ?>
    <!-- BEGIN CONTENT -->  
    <div id="content">
        <!-- BEGIN POST CONTENT --> 
        <?php if($post->post_content) { ?>  
            <div id="post-content">
                <?php the_content(__('Read More &raquo;', 'gp_lang')); ?>
            </div>
            <?php } ?>
        <!-- END POST CONTENT -->           
    </div>
    <!-- END CONTENT -->
<?php
endwhile; endif;
get_footer();
?>


请记住,“comment\u count”参数仅在Wordpress 2.9或更高版本上可用。我使用了一个名为buddy的buddy press主题,它显示贴在帖子上的图像的缩略图,您的示例仅返回注释,我如何找到buddy主题正在使用的已修改查询,以便使用该查询并将注释计数添加为order by?