0

カスタム分類法を使用してすべて1年に割り当てられた一連の投稿があります。クエリ投稿を使用して、これらの投稿を並べ替えて、2012年の投稿が最初に表示され、残りがアルファベット順に並べ替えられるようにしたいと思います。

以下の例は正しく機能しています。最初に、メタ値が2012と一致するすべての投稿が表示され、次に2番目のループで最初のループから投稿を除外した他のすべての投稿が表示されます。

<?php query_posts( array(
    'post_type' => 'project',
    'meta_key' => 'start_date_year',
    'meta_value' => '2012'
    ));
    $ids = array();
?>

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

<p>This is from Loop 1 - <?php the_title(); ?> - <?php the_id(); ?></p>
<?php $ids[]= $post->ID; ?>

<?php endwhile; endif; wp_reset_query(); ?>

<?php query_posts( array(
    'post_type' => 'project',
    'post__not_in' => $ids
    ));
?>

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

<p>This is from Loop 2 - <?php the_title(); ?> - <?php the_id(); ?></p>

<?php endwhile; endif; wp_reset_query(); ?>

<?php pagination(); ?>

私が今残している唯一の問題はページ付けです。2ページが表示されていますが、それぞれに同じ結果が含まれています...

4

1 に答える 1

2

2 つのループを実行して、最初のループから投稿の ID を配列に収集し、これを 2 番目の wp_query $args に追加して 2 番目の配列から除外します。

似てますね…

'post__not_in' => $array_variables_from_first_loop,
于 2012-11-15T20:07:06.963 に答える