2017-02-14 55 views
1

是否可以查詢一年前的Wordpress帖子,或最近的帖子到該日期。查詢最新的WordPress的帖子從一年前

我想要一個'lookback'功能,允許用戶查看我們前一年在說什麼。

我已經試過尋找通過codex,但沒有找到任何靈感。有任何想法嗎?

回答

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

感謝 - 這並沒有完全爲我工作,但使我說沒有代碼工作 '的$ args =陣列( 'post_type'=>'播客」, 'date_query'=>數組( 陣列( '前'=> '-1年', ) ) 'posts_per_page'=> 1 ); $ lookback = new WP_Query($ args); while($ lookback-> have_posts()):$ lookback-> 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只要可以完成就可以使用WP_Query。

的更多信息: SQL Query to show nearest date? https://www.w3schools.com/sql/func_datediff.asp https://codex.wordpress.org/Class_Reference/wpdb