Есть массив новостей. Из него я хочу взять посты определенной даты (значение $date_news берется из select, передаю через Ajax), а затем выводить их по одному по нажатию на кнопку "Показать еще". Не могу сообразить, как это реализовать. Пытался сделать следующим образом:
$news = array (
"post_type" => "news",
"posts_per_page" => 1,
"orderby" => $date_news
);
Дальше я через цикл перебираю элементы массива:
$news_query = new WP_Query( $news );
while( $news_query->have_posts() ) {
$news_query->the_post();
$post_date = get_the_date('F, Y');
$thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), false, '');
if ($post_date == $date_news) {
$result[] = array(
"id" => get_the_ID(),
"title" => get_the_title(),
"permalink" => get_permalink(),
"thumbnail" => $thumbnail[0],
"author" => get_the_author(),
"date" => get_the_time('d.m.y'),
"views" => getPostViews(get_the_ID()),
"content" => mb_substr( strip_tags( get_the_content() ), 0, 345 )
);
}
} //end while
echo json_encode( $result );
wp_die();
Но проблема в том, что если я хочу отобразить посты, опубликованные месяца три назад, то в результате у меня вообще ничего не отображается. Я понимаю, в чем проблема (из массива новостей берется первая запись, самая свежая, и берется только она), но не знаю, как ее решить. Пробовал сделать так, чтобы мой массив состоял только из записей новостей выбранной даты:
$args = array(
"post_type" => array( "post_type" => "news", "orderby" => $date_news),
"offset" => $offset,
"posts_per_page" => 1
)
Но этот код не работает. Как решить такую проблему? Заранее спасибо.