我确实尝试使用以下代码从修改日期获取所有wordpress帖子,但我无法从修改日期发布帖子。通过使用以下代码,我可以post_date
而不是post_modified
获取数据。我的帖子是25-12-2017
modified date
,其post date
是23-12-2017。我希望通过修改后的日期获取数据。
谢谢
第一个代码:
<?php
$args = array(
'posts_per_page' => $Limit,
'post_type' => 'post',
'orderby' => 'modified',
'offset' => ($Page - 1) * $Limit,
'year'=>date('Y'),
'monthnum'=>date('m'),
'day'=> 25,
'order'=> 'DESC',
);
?>
第二个代码:
<?php
$args = array(
'posts_per_page' => $Limit,
'post_type' => 'post',
'orderby' => 'modified',
'offset' => ($Page - 1) * $Limit,
'date_query' => array(
array(
'after' => "December 24, 2017",
),
),
);
?>
答案 0 :(得分:1)
我不认为默认情况下WordPress有这个功能,但你可以实现这一点 通过
posts_where
过滤器。
以下是示例代码:
将此内容写入functions.php
文件
function scopePostModifiedDate($sql)
{
global $wpdb;
$sql .= $wpdb->prepare(" AND DATE($wpdb->posts.post_modified) >= %s ", '2017-12-25');
return $sql;
}
此代码随时可用:
add_filter('posts_where', 'scopePostModifiedDate');
$args = array(
'posts_per_page' => $Limit,
'post_type' => 'post',
'orderby' => 'modified',
'offset' => ($Page - 1) * $Limit,
// 'date_query' => array(
// array(
// 'after' => "December 24, 2017",
// ),
// ),
);
$custom_query = new WP_Query($args);
remove_filter('posts_where', 'scopePostModifiedDate');
//print_r($custom_query->request); //print SQL query
参考: