2017-02-14 9 views
1

Wordpressの投稿を1年前に、またはその日に最も近い投稿から検索することは可能ですか?最新のWordpressの投稿を1年前から問い合わせする

「ルックバック」機能を使用して、1年前の話題を表示できるようにしたいと考えています。

コーデックスを調べてみましたが、まだインスピレーションが見つかりませんでした。何か案は?

答えて

1

投稿のサブセットを見つけるWP_Queryを使用してクエリを実行できます。 date_query関数はstrtotimeによって認識されるすべての値を処理できるため、便宜上「-1年」を使用できます。

<?php 
$args = array( 
    'post_count' => 1, 
    'date_query' => array(array('before' => '-1 year')),  
    'posts_per_page' => 1 
); 
$lookback = new WP_Query($args); 

while ($lookback->have_posts()) : ?> 

    <div> 
    <h1>One year ago you posted:</h1> 
    <?php $lookback->the_post(); ?> 
    </div> 

<?php endwhile; ?> 
+0

おかげ - これは完全に私のために働くが、=配列( 'post_type' => ' '$ argsは動作しなかったコードに私を導いていませんでしたポッドキャスト」 'date_query' =>配列( アレイ( '' => '前-1年間'、 )、 )、 'posts_per_page' => 1 )。 $ルックバック=新しいWP_Query($ args); while($ lookback-> have_posts()):$ルックバック - > the_post(); ' –

+0

ありがとう、@KevinRobinson。私の答えを上向きに投票して、それに印を付けることができれば、それは大いに感謝するだろう。 – funwhilelost

0

(未テスト)動作するはずです以下:

global $wpdb; 
$nearest_one_year_ago = $wpdb->get_var("SELECT id 
FROM $wpdb->posts 
ORDER BY ABS(DATEDIFF(post_date, ".date("Y-m-d",strtotime("-1 year", time()).")) 
LIMIT 1"); 

$post = get_post($nearest_one_year_ago); 

// ... go on 

説明:単にあなたの複雑なクエリの問題のために働いてSQLクエリを検索し、$ wpdbを使用しています。しかし、通常はWP_Queryを使用する方が良いでしょう。

詳細情報: SQL Query to show nearest date? https://www.w3schools.com/sql/func_datediff.asp https://codex.wordpress.org/Class_Reference/wpdb

関連する問題