2009-03-03 11 views
1

カテゴリリストが一番上に表示されているページがあります。通常、その下に投稿のリストを表示する必要があります。カテゴリリストは、以前の投稿のクエリを上書きするにはどうすればよいですか?

<?php $display_categories = array(4,7,8,9,21,1); $i = 1; 
foreach ($display_categories as $category) { ?> 
<?php single_cat_title(); ?> //etc 
</div> 
    <?php } ?> 

を使用して作成されますが、これはポストループのカテゴリをカテゴリ順に並べ替えるようです。カテゴリの順序と日付を降順で無視するようにします。私は新しいWP_Queryを作成しました。これは、ドキュメントによれば、query_posts()を2回使用することはできません。

<?php $q = new WP_Query("cat=-1&showposts=15&orderby=date&order=DESC"); 
    if ($q->have_posts()) : while ($q->have_posts()) : $q->the_post(); ?> 
    the_title(); // etc 
    endwhile; endif; ?> 

しかし、このはまだ日付でちょうどとは反対に、カテゴリ(上記のリストと同じ順序)で注文して、日付でいるように見えます。

+0

私は – TheTXI

+0

は私がページを持っていたい...曇りの日に... sunshiiiineんです。私が持っているのは、一貫した文章を作る能力だけです。 – Pesto

答えて

2

はこれを試してみてください:

 <?php 
    global $post; 
    $myposts = get_posts('numberposts=5'); 

    foreach($myposts as $post) : 
    setup_postdata($post); 
    ?> 
     <div <?php post_class(); ?>> 
     <div class="title"> 
      <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
      <p class="small"><?php the_time('F j, Y'); ?> by <?php the_author(); ?></p> 
     </div> 
     <?php the_excerpt(); ?> 
     </div> 
<?php 
    endforeach; 
?> 

重要な行は 'グローバル$ポスト;'。

これは、グローバルクエリをリセットする必要があります。 'the_author()'や 'the_content()'のような関数にアクセスするには、setup_postdata($ post)メソッドが必要です。

-Chris

0

query_postsは時々厄介です。このような何かを試してみて、それが動作するかどうかを確認:

query_posts(array('category__not_in'=>array(1), 
        'showposts'=>15, 
        'orderby'=>date, 
        'order'=>DESC)); 

それは問題ではありませんので、このように、第二のループにupdate_post_caches($ポスト)を追加してみてください:

<?php $q = new WP_Query("cat=-1&showposts=15&orderby=date&order=DESC"); 
if ($q->have_posts()) : while ($q->have_posts()) : $q->the_post(); update_post_caches($posts); ?> 
the_title(); // etc 
endwhile; endif; ?> 

たぶんこのsolves some plugin problems

+0

お返事ありがとうございます!しかし、それは違いはありません。 –

0

私はワードプレスの経験を持っていませんが、可能性のカップル:

  1. あなたはあなたがquery_posts()を呼んでいる文字列に二回「秩序」のパラメータを定義し、私はかどうかを知りませんそれは問題を引き起こすかどうかはわかりません。
  2. 「show」は有効なパラメータではないため、「showposts」を探している可能性があります。

パラメータとその効果は、ここで説明されている:私も前にこのの問題を持っていたhttp://codex.wordpress.org/Template_Tags/query_posts#Parameters

+0

こんにちは、ありがとう。私はコード(と上記の投稿)を更新しましたが、それでも問題を解決していないようです。 –

関連する問題