Erhalten Sie gemischte Kategorie zufällige Beiträge

Ich habe 3 Kategorien: A, B, C. A hat ungefähr 1000 Pfosten, B hat ungefähr 300 Pfosten und C hat 50 Pfosten. Wenn ich 5 Posts abfrage, die zufällig sortiert sind. Ich bekomme meistens Beiträge aus einer Kategorie.

Wie kann man gemischte Kategorie-Zufallsposts wie 3 von A, 1 von B und 1 von C bekommen?

Solutions Collecting From Web of "Erhalten Sie gemischte Kategorie zufällige Beiträge"

Ich habe das aufgepeppt:

echo '
    '; the_random_posts(); echo '
'; /** * Send random posts to the browser (STDOUT). */ function the_random_posts() { // Use your own category ids. $random_posts = array_merge( get_random_posts( 31, 3 ), get_random_posts( 11, 1 ), get_random_posts( 24, 1 ) ); foreach ( $random_posts as $post ) { // Change this line to code you want to output. printf( '
  • https://wordpress.stackexchange.com/questions/110170/get-mixed-category-random-posts/%s
  • ', get_permalink( $post->ID ), get_the_title( $post->ID ) ); } } /** * Get $post_count random posts from $category_id. * * @param int $post_count Number of random posts to retrieve. * @param int $category_id ID of the category. */ function get_random_posts( $category_id, $post_count ) { $posts = get_posts( array( 'posts_per_page' => $post_count, 'orderby' => 'rand', 'cat' => $category_id, 'post_status' => 'publish', ) ); return $posts; }

    Wenn sich Beiträge in 2 oder mehr der ausgewählten Kategorien befinden, besteht die Möglichkeit, dass ein Beitrag wiederholt wird (wie ein Beitrag, der sowohl in Kategorie A als auch in Kategorie B enthalten ist). Eine statische Variable mit einem Array von zuvor abgerufenen Posts könnte dies beheben.

    Dieser Algorithmus druckt die Posts in der Reihenfolge, in der sie aufgerufen wurden.

     get_random_posts( 31, 3 ), // First, 3 random posts from Category A get_random_posts( 11, 1 ), // Then, 1 random post from Category B get_random_posts( 24, 1 ) // Then, 1 random post from Category C 

    Wenn Sie eine zufällige Liste wünschen, mischen Sie $random_posts .