2017-02-14 103 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