简体   繁体   English

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

[英]WordPress Query display only posts modified today

I'm trying to create a query in WordPress that displays only the posts that were edited today, excluding those posted today. 我正在尝试在WordPress中创建一个查询,该查询仅显示今天编辑的帖子, 不包括今天发布的帖子 I've tried several variations but nothings seem to be working: 我尝试了几种变体,但似乎没有任何效果:

$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'
);

I'm not quite sure what to put in key , although that isn't the only problem. 我不太肯定要放什么key ,虽然这不是唯一的问题。

Its not the best solution but you can just do the filter after your query and check if the current date string is inside the post date modified, 它不是最佳解决方案,但您可以在查询后进行过滤,并检查当前日期字符串是否在修改后的发布日期之内,

eg 例如

$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>';

If I get it right, with "displays only the posts that were edited today, excluding those posted today." 如果我做对了,请使用“仅显示今天编辑的帖子,不包括今天发布的帖子”。

I guess you mean display ONLY old published posts modified/edited today. 我想你的意思是只显示今天修改/编辑的旧发布帖子。

If that is the case, this might help you: 如果是这种情况,这可能对您有帮助:

<?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; ?>

Based on this query to select all posts either published or modified today , you could just write this WP_Query to retrieve only the modified ones: 基于此查询, 选择所有今天发布或修改的帖子 ,您只需编写此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 );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM