С помощью WP_Query, поставить posts_per_page = 1, в одном коде с сортировкой по дате в одном направлении, в другом с сортировкой по дате в обратном направлении.
Еще такое решение предлагают
используем функцию get_posts()
$posts = get_posts( array(
'numberposts' => -1,
'category' => '[I]тут ID нужной категории[/I]',
'orderby' => 'post_date',
) );
затем из $posts получаем
$posts[0]->ID — id первой записи, $posts[count($posts) — 1]->ID — id последний записи
каким путем лучше идти?
каким путем лучше идти?
Вариант qwert555 лучше. В Вашем примере запрашиваются ВСЕ записи.
А можете тогда полностью написать код с WP_Query?
Спасибо!
Такой код нормально?
$args = array(
‘posts_per_page’ => 1,
‘orderby’ => ‘date’,
‘order’ => ‘ASC’,
‘category__in’=>’ID’
);
$q = new WP_Query($args);
if($q->have_posts()) {
1.1.Как в переменную DATE_START записать дату этого поста
}
wp_reset_postdata();
$args = array(
‘posts_per_page’ => 1,
‘orderby’ => ‘date’,
‘order’ => ‘DESC’,
‘category__in’=>’ID’
);
$q = new WP_Query($args);
if($q->have_posts()) {
1.2.Как в переменную DATE_END записать дату этого поста?
}
wp_reset_postdata();
2.как создать массив (целых чисел) DURATIONS элемент которого DURATIONS (ID)=DATE_END-DATE_START
3. Как вывестиназвание категории ID с ссылкой на эту категорию переменную DURATIONS (ID)?
Вот так можно
$posts_asc = get_posts( array(
'numberposts' => 1,
'category' => '',
'orderby' => 'post_date',
'order' => 'ASC'
) );
$date_end = $posts_asc[0]->post_date;
и
$posts_desc = get_posts( array(
'numberposts' => 1,
'category' => '',
'orderby' => 'post_date',
'order' => 'DESC'
) );
$date_start = $posts_desc[0]->post_date;
если отнять 2 элемента $posts_desc друг от друга, получится разница в днях?
$date_start
и $date_end
— это строки, их нельзя отнять друг от друга 🙂
Попробуйте так:
$diff = round( ( strtotime( $date_end ) - strtotime( $date_start ) ) / DAY_IN_SECONDS );