![](/img/trans.png)
[英]Change Wordpress Posts' last_modified date and time with WP Query
[英]Wordpress list posts by modified date
我確實嘗試使用以下代碼從修改日期獲取所有wordpress帖子,但無法從修改日期獲取帖子。 通過使用以下代碼,我將通過post_date
而不是post_modified
獲取數據。 我已在25-12-2017
modified date
之前發布了25-12-2017
,其post date
是25-12-2017
modified date
post date
。 我想按修改后的日期獲取數據。
謝謝
第一個代碼:
<?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",
),
),
);
?>
我不認為默認情況下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
Refrence:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.