0

まず最初に、私はこの 1 週間を費やして、かなり多くの異なる情報源からこのコードをまとめることに取り組みました。私は PHP を書くのが得意ではありませんが、これまでのところうまくいきました。任意の入力をいただければ幸いです。

私は、cat 4 のすべての子カテゴリから最新の 10 件の結果を取得する必要があるプロジェクトに取り組んでいます。その後、結果をランダム化して表示することを検討しています。shuffle();の使用例をたくさん見てきました。機能しますが、正しく実装する際に問題があります。

これが私のコードです:

<?php

$categories = get_categories( 'child_of=4' );
  foreach($categories as $category) {
  $args=array(
  'showposts' => 10,
  'category__in' => array($category->term_id),
  'caller_get_posts'=>1
);
$posts=get_posts($args);
  shuffle($posts);
  if ($posts) {
    foreach($posts as $post) {
      setup_postdata($post); ?>
        <div <?php post_class('boxy');?>>
      <a href="<?php the_permalink() ?>"><?php  the_post_thumbnail(); ?></a>

    <?php the_content(''); ?>
    </div>
      <?php
    } 
  } 
} 
?>

ここに私の結果へのリンク:進行中のライブ作業

このコードは、各カテゴリの結果をランダム化していますが、カテゴリ別に表示しています..単純な修正のように見えることについて、十分に明確になったことを願っています.

ありがとう

4

2 に答える 2

1

あなたは最初にあなたが持っているすべてのカテゴリーですべての投稿の配列を作る必要があります。あなたが同じをシャッフルする必要があるより。これを試して、

 $posts = array();
 $categories = get_categories( 'child_of=4' );
 foreach($categories as $category) {
   $args=array(
    'showposts' => 10,
    'category__in' => array($category->term_id),
    'caller_get_posts'=>1
   );
 $posts = $posts + get_posts($args);
} // Close your foreach here

....そのままのコードより...

于 2013-02-20T06:04:29.103 に答える
0
$categories = get_categories( 'child_of=4' );
$cats = array();
foreach($categories as $category) {
   $cats[] = $category->term_id;
}

$args=array(
  'showposts' => 10,
  'category__in' => $cats,
  'orderby' => 'rand',
  'caller_get_posts'=>1
);
$posts=get_posts($args);

これがより効果的な解決策になることを願っています。私はそれをテストしていません。

于 2013-02-20T06:39:00.603 に答える