1

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

したがって、query_posts を追加した場合の archive.php の外観は次のようになります。

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

そして、それはめちゃくちゃだったので、使ってみましquery_posts('posts_per_page=5'); た。良いことは、1ページに5つの記事が表示されていることです。悪いことは、間違った記事を表示していることです。正確には、どのサブカテゴリに行っても、そのサブカテゴリにあるはずのない同じ記事が表示されています。次のページに行くと・・・同じ記事が表示されています。どこにでも表示されるこれらの記事は、1 つのサブカテゴリにのみ属します。また、10 個ほどのカテゴリがあり、それぞれに 2 ~ 3 個のサブカテゴリがあることも言及しておく必要があります。

ここで途方に暮れています。私の説明を理解していただければ幸いです。

4

1 に答える 1

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 を削除できます

于 2012-04-13T01:08:53.247 に答える