2012-04-16 13 views
0

私はこのwpクエリーを何とかして毎月1回返信し、現在のインストールからすべての月を表示しようとしています。投稿がランダムであればすばらしいでしょう。したがって、各ページのリロードごとに投稿が異なります。wp query DSCで各月のランダム投稿を表示する

は、私がこれまでに...

<?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ではなく)のアーカイブグリッドを構築するために使用するものです。

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

ただし、上記のクエリを毎月のランダム投稿に適用できる場合にのみコードが機能します。

ありがとうございました。

答えて

-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月の月に投稿されたランダムなポストを与えます。

+0

Hello Sudar。私は混乱しています、これは毎月からランダムな投稿を返しますか? – Joshc

+0

いいえ、これは公開された投稿のコレクション全体から1つのランダム投稿を返します。毎月1つのランダム投稿を取得するには、これを拡張する必要があります。 – Sudar

+0

ありがとうSudar - 広範囲のビットは私が立ち往生する場所です、私はそれを行う方法を考えることができません。 – Joshc

関連する問題