簡體   English   中英

WordPress按修改日期列出帖子

[英]Wordpress list posts by modified date

我確實嘗試使用以下代碼從修改日期獲取所有wordpress帖子,但無法從修改日期獲取帖子。 通過使用以下代碼,我將通過post_date而不是post_modified獲取數據。 我已在25-12-2017 modified date之前發布了25-12-2017 ,其post date25-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM