2012-04-13 19 views
1

各カテゴリのすべての投稿をスコアに基づいて降下させたい(GDスター格付けプラグインを使用)。 私は、プラグインサイトで、query_posts("gdsr_sort=rating");をarchive.phpファイルに追加する必要があることを知りました。wordpress query_posts in archive issue

だからこれは私のarchive.phpがquery_postsでどのように見えるかでは、コメントを追加しました:

<?php query_posts("gdsr_sort=rating"); ?> 
<?php while (have_posts()) : the_post(); ?> 
    <div <?php post_class() ?>><li> 
     <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1> 

     <?php if (has_post_thumbnail()) : ?> 
      <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a> 
     <?php endif; ?> 

     <?php the_content('Read more...'); ?> 
    </li> 
    </div> 
    <?php endwhile; ?> 
     <div class="clear"></div> 
    <?php wp_reset_query(); ?> 

そして、それは物事を台無しので、私は良いことだが、それはページあたり5件の記事を見せているということであるquery_posts('posts_per_page=5'); を使用してみました。 悪いことは、間違った記事を表示していることです。正確には、どのサブカテゴリに行っても、そのサブカテゴリには含まれていない同じ記事が表示されています。次のページに行くと、同じ記事が表示されています。どこにでも表示されているこれらの記事は、1つのサブカテゴリにのみ属しています。 私は10のcateogireのようなものがあり、それぞれに2-3のサブカテゴリがあることを言及する必要があります。

私はここに迷っています。

+0

あなたの記事はどのカテゴリから来ますか? – SuperNoob

答えて

2

新しいクエリを作成する代わりに、wordpressクエリを変更することができます。あなたが使用しているプラ​​グインについてはわかりませんが、これはうまくいくはずです:

function change_archive_query($query) { 
    if ($query->is_main_query() && $query->is_archive()) { 
     $query->set('gdsr_sort', 'rating'); 
    } 
} 
add_action('pre_get_posts', 'change_archive_query'); 

これをあなたのfunctions.phpに入れることができます。 archive.phpでquery_postsを削除することができます

+0

チャームのように働いた。ありがとうございました :) – St0ne