【问题标题】:Wordpress list posts by modified dateWordPress 按修改日期列出帖子
【发布时间】:2017-12-26 20:55:44
【问题描述】:

我确实尝试使用以下代码从修改日期获取所有 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",            
        ),
    ),
);
?>

【问题讨论】:

    标签: php wordpress date


    【解决方案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
    

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多