Wordpress:按日期显示已删除的帖子

时间:2016-01-31 00:48:14

标签: php wordpress date wp-query

我正在使用此代码...

<ul>
<?php 
$args = array( 
    'posts_per_page'  => 10,
    'orderby'         => 'post_date',
    'order'           => 'DESC',
    'post_status'     => 'publish, trash'
);

$query = new WP_Query( $args ); ?>
<?php while ($query -> have_posts()) : $query -> the_post();
?>

    <li>
        <?php the_title(); ?>
        <br />Post Created on: <?php echo get_the_date(); ?>
        <br />Post Trashed on: <?php echo "???"; ?>
    </li>

<?php 
endwhile;
wp_reset_postdata();
?>
</ul>

...显示最近发布的10个帖子或已删除帖子的列表。

但是关于返回的已删除帖子,它们需要是帖子被删除的日期,而不是创建时间。

为了进一步说明问题,如果一年前有一些帖子,我今天将它们删除,它们就不会出现在这个列表中,因为它们不属于数据库中最近的10个帖子。

需要发生的是,如果我现在废弃了一个非常旧的帖子,那么它会出现在这个列表中(事实上在列表的顶部 - 因为我现在已经删除了它)。

所以这个列表最终需要反映的是:

  • 添加的任何新帖子,显示帖子的创建日期。
  • 任何被删除的帖子,显示帖子被删除的日期。

将其视为活动日志(这最终是它),显示最近创建的帖子和最近发布的帖子的组合,以及它们各自的已发布和已删除日期。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用'orderby' => 'modified',当您删除帖子时,它会更改修改日期,您也可以使用echo get_the_modified_date()

显示它

或使用get_posts()

$args = array( 
    'posts_per_page'  => 10,
    'orderby'         => 'modified',
    'order'           => 'DESC',
    'post_status'     => 'publish, trash'
);
$query = new WP_Query( $args ); 
$posts = $query->get_posts();  
foreach ( $posts as $post ) { 
    _e($post->post_title ' - Modified On:'. $post->post_modified);
}