WordPress Query отображать только сообщения, измененные сегодня

Я пытаюсь создать запрос в 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Хотя это не единственная проблема.

1

Решение

Если я правильно понял, с «отображает только те сообщения, которые были отредактированы сегодня, исключая те, которые были опубликованы сегодня».

Я предполагаю, что вы имеете в виду отображение ТОЛЬКО старых опубликованных сообщений, измененных / отредактированных сегодня

Если это так, это может помочь вам:

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

Другие решения

Это не лучшее решение, но вы можете просто выполнить фильтр после запроса и проверить, находится ли текущая строка даты внутри измененной даты публикации,

например

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

На основании этого запроса выбрать все публикации, опубликованные или измененные сегодня, Вы можете просто написать этот 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 );
0
По вопросам рекламы [email protected]