【发布时间】:2017-02-14 19:08:17
【问题描述】:
是否可以查询一年前的 Wordpress 帖子,或距该日期最近的帖子。
我想要一个“回顾”功能,让用户可以查看我们一年前谈论的内容。
我试过翻阅手抄本,但还没有找到任何灵感。有什么想法吗?
【问题讨论】:
是否可以查询一年前的 Wordpress 帖子,或距该日期最近的帖子。
我想要一个“回顾”功能,让用户可以查看我们一年前谈论的内容。
我试过翻阅手抄本,但还没有找到任何灵感。有什么想法吗?
【问题讨论】:
您可以使用WP_Query 运行查询,它会找到您的帖子子集。因为date_query 函数可以处理strtotime 可以识别的任何值,所以为了方便,可以使用'-1 year'。
<?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; ?>
【讨论】:
$args = array( 'post_type' => 'podcast', 'date_query' => array( array( 'before' => '-1 year', ), ), 'posts_per_page' => 1 ); $lookback = new WP_Query( $args ); while ( $lookback->have_posts() ) : $lookback->the_post();
以下应该可以工作(未经测试):
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
【讨论】: