0

このwpクエリを作成して、毎月1つの投稿を返し、現在のインストールからのすべての月を表示しようとしています。投稿がランダムであれば、それは素晴らしいことです。したがって、投稿はページのリロードごとに異なります。

私がこれまでに思いついたものを見てください...

<?php $arhiveGrid = new WP_Query(array(

    'post_type'      => 'page'              
    'order'          => 'DESC',
    'orderby'        => 'date',
    'posts_per_page' => 99999

)); ?>

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

    $retina  = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumb-retina' ); ?>

    <a class="arhive-grid" href="<?php bloginfo('url'); the_time('/Y/m/'); ?>" style="background-image:<?php echo $retina[0]; ?>;">

        <span><?php the_time('F Y') ?></span>

    </a>

<?php endwhile; unset($arhiveGrid); endif; ?>


明らかに、このクエリは私のインストールのすべての投稿を返します。上記のコードは、アーカイブページ(archive.phpではない)のアーカイブグリッドを構築するために使用するものです。

グリッドには、背景として各月の画像が必要であり、テキストオーバーレイとして月と年が必要であり、正しい月にリンクする必要があります。

ただし、コードは、上記のクエリを適応させて毎月ランダムな投稿を取得できる場合にのみ機能します。

ヘルプやポインタをありがとう。

4

1 に答える 1

-1

このクエリは、ランダムな投稿を取得します。「numberposts」を変更して、任意の数の投稿を取得できます

<?php
$args = array( 'numberposts' => 1, 'orderby' => 'rand' );
$rand_posts = get_posts( $args );
?>

編集:時間範囲内からランダムな投稿を取得する場合は、カスタム クエリを使用する必要があります。

$wpdb->query("SELECT * FROM $wpdb->posts where post_data >= '2012-03-01' AND post_data < '2012-03-31' ORDER BY RAND() limit 1 ");

このクエリは、2012 年 3 月に投稿されたランダムな投稿を返します。

このクエリをループで使用して、必要な月ごとにランダムな投稿を取得する必要があります。

于 2012-04-17T06:22:12.850 に答える