在特定日期之后获取评论

时间:2012-03-21 作者:AlxVallejo

我认为这不是get\\u comments($args)中的参数;所以我使用的是SQL语句。首先,我从我创建的一个单独的表中获取注释日期。之后,我想检索在该日期之后发表的所有评论。

$last_updated_comment = "
    SELECT comment_date FROM wp_last_comment
    ORDER BY comment_date DESC LIMIT 1";
$last_updated_comment = $wpdb->get_results( $wpdb->prepare($last_updated_comment));
print_r( $last_updated_comment );
这将产生:

Array ( [0] => stdClass Object ( [comment_date] => 2012-03-09 09:03:00 ) ) 
因此,我添加了foreach语句来访问数组中的对象:

foreach($last_updated_comment as $key => $object){
print_r( $object);
echo "<br /><br />";
}
@Stephen Harris,谢谢你的语法帮助。接下来,对于每个对象,获取日期:

foreach($object as $key => $date_lookup){
    echo $date_lookup . \'<br /><br />\';
}
带输出:

$date_lookup = 2012-03-09 09:03:00
第2部分:比较SQL语句中的日期

现在我已经获得了参考日期,我想在$date\\u lookup之后从wp\\u comments中获取所有评论:

global $wpdb;
$sql = "
    SELECT comment_post_ID, comment_author, comment_author_email, comment_date, comment_content, comment_approved, comment_type, comment_parent
    FROM wp_comments WHERE comment_date > \'%$date_lookup%\' ";
$new_comments = $wpdb->get_results($sql);
print_r( $new_comments );
现在,似乎>操作符正在查看时间,而忽略了年份,因为我的输出包含一组日期为2011年的注释。

>操作符是要使用的正确工具吗?

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

这是一个php语法错误,请尝试:

foreach($last_updated_comment as $key => $last_comment_date){
    print_r( $last_comment_date );
    echo "<br /><br />";
}

SO网友:AlxVallejo

$date\\u lookup必须用引号括起来(原因我不能肯定)。

比较日期的正确语法:

global $wpdb;
$sql = "
    SELECT comment_post_ID, comment_author, comment_author_email, comment_date, comment_content, comment_approved, comment_type, comment_parent
    FROM wp_comments WHERE comment_date > \'".$date_lookup."\' ";
$new_comments = $wpdb->get_results($sql);
print_r( $new_comments );

结束

相关推荐

“SELECT TOP 0”是MS SQL数据库的错误吗?

我有一个问题,我的帖子页面显示“找不到帖子”,而在它的正上方是“所有(1)|发布(1)”(这是一个新安装)。该帖子不仅在管理层中,而且在实时站点上也不可见。我想这可能与我的数据库有关,该数据库是SQL Server使用的WP Db Abstraction. 因此,我安装了调试栏并找到以下查询:SELECT TOP 0 * FROM wp_posts WHERE 1=1 AND wp_posts.post_type LIKE \'post\' AND (wp_posts.post_status = \'pu