在过去48小时内修改的帖子

时间:2016-01-25 作者:cody.me

我正在使用下面的代码生成过去48小时内创建的帖子。

  function filter_where($where = \'\') {
    $where .= " AND post_date > \'" . date(\'Y-m-d\', strtotime(\'-2 days\')) . "\'";
    return $where;
  }
add_filter(\'posts_where\', \'filter_where\');
But 我还想在过去48小时内修改帖子。即使其创建日期较旧。有人知道怎么做吗?

我很感激你的帮助。。。

1 个回复
SO网友:cybmeta

您可以轻松地使用WP_Query:

$args = array(
    \'date_query\' => array(
        \'relation\'   => \'OR\',
        array(
            \'column\'  => \'post_date\',
            \'after\'   => \'-2 days\'
        ),
        array(
            \'column\'  => \'post_modified\',
            \'after\'   => \'-2 days\'
        )
    )
);

$query = new WP_Query( $args );
有关的更多信息date_query parameter of WP_Query.

如果出于某种原因,您仍要更改WHERE clausele,像这样的方法应该有效(未经测试):

function filter_where($where = \'\') {
    $where .= " AND ( post_date > \'" . date(\'Y-m-d\', strtotime(\'-2 days\')) . " OR post_modified > " . date(\'Y-m-d\', strtotime(\'-2 days\')) . " )\'";
    return $where;
  }
add_filter(\'posts_where\', \'filter_where\');
另外,您必须注意,在post where filter中,您正在使用Y-m-d 日期格式,不包括时间。可能导致意外结果的;您可能需要使用MySQL日期时间格式:Y-m-d H:i:s.