WordPress查询仅显示今天修改的帖子

时间:2016-02-03 21:20:54

标签: php wordpress querying

我正在尝试在WordPress中创建一个查询,该查询仅显示今天已编辑的帖子,不包括今天发布的 。我尝试了几种变化,但似乎没有效果:

$today = current_time('Ymd');

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => '10',
    'meta_query' => array(
        array(
            'key' => 'modified',
            'compare' => '>=',
            'value' => $today,
            'type' => 'NUMERIC,'
            )
    ),
    'orderby' => 'modified',
    'order' => 'DESC',
    'ignore_sticky_posts' => '1'
);

我不太确定在key放什么,虽然这不是唯一的问题。

3 个答案:

答案 0 :(得分:0)

它不是最好的解决方案,但您可以在查询后执行过滤,并检查当前日期字符串是否在修改后的日期内,

e.g。

$ar = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => '10',
    'orderby'   => 'modified',
    'order'     => 'DESC',
    'ignore_sticky_posts' => '1'
);
$q = new WP_QUery( $ar );
$p = $q->get_posts();
foreach( $p as $a ) {
    $c = current_time( 'Y-m-d' );
    if ( strpos( $a->post_modified, $c ) !== false ) {
        _e( $a->post_title .' '.$a->post_modified. ' - ' . $c. "<br>" );
    }
} 
#echo '<pre>', print_r($p, 1), '</pre>';

答案 1 :(得分:0)

如果我说得对,用&#34;只显示今天编辑的帖子,不包括今天发布的帖子。&#34;

我猜您的意思是仅显示今天修改/编辑过的旧帖子。

如果是这种情况,这可能会对您有所帮助:

<?php
    // query args
    $args = array(
            'posts_per_page'        => '10',
            'post_type'             => 'post',
            'post_status'           => 'publish',
            'orderby'               => 'modified',
            'order'                 => 'DESC',
            'ignore_sticky_posts'   => '1',
            'caller_get_posts'      => 1
    );

    // query
    $updated = new WP_Query($args);

    // loop
    while($updated->have_posts()) : $updated->the_post(); 

    $today = current_time('Y-m-d'); // current date a.k.a. TODAY
    $pub = get_the_time('Y-m-d', $updated->ID); // date when post was published
    $mod = get_the_modified_time('Y-m-d', $updated->ID); // date when post was last modified

    // if post NOT published today AND was modified today display: 
    if ( $pub !== $today && $mod === $today ) :
?>

<!-- here goes your normal wp game -->
<h1><?php the_title ?></h1>
<span><?php the_date(); ?></span>
<p><?php the_excerpt(); ?></p>

<?php endif; endwhile; ?>

答案 2 :(得分:0)

基于对select all posts either published or modified today的查询,您只需编写此WP_Query即可仅检索修改后的WP_Query:

   $args = array(
        'post_type' => 'post',
        'post_status' => 'any', // we also want the drafts
        'nopaging'=>true,
        'date_query' => array(
            'column' => 'post_modified',
            'year'  => $day_parsed['year'],
            'month' => $day_parsed['month'],
            'day'   => $day_parsed['day'],
        )
    );

    $query_day_posts = new WP_Query( $args );