2013-02-16 2 views
0

다음 링크에서 솔루션을 시도했지만 게시물을 표시 할 수 없습니다.Wordpress, 댓글 갯수에 의해 게시물 정렬

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

답변

0

규칙없이 시도 코드의 예입니다 : 기본 워드 프레스 테이블에 대한 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(); 
?> 
+0

'comment_count'매개 변수는 Wordpress 2.9 이상에서만 사용할 수 있습니다. – maiorano84

+1

나는 buddy라는 이름의 buddy press 테마를 사용하여 게시물에 첨부 된 이미지의 축소판을 표시합니다. 예제에서는 주석 만 반환합니다. 버디 테마가 사용하는 수정 된 쿼리를 찾는 방법은 어떻게됩니까? comment_count를 주문순으로? –

관련 문제