Поддержка Проблемы и решения Как получить id первой и последней записи (по дате) кате

  • Как получить id первой и последней записи (по дате) в определенной категории?
    Подскажите, плиз!
    Спасибо

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • С помощью 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 последний записи

    каким путем лучше идти?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    каким путем лучше идти?

    Вариант 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 друг от друга, получится разница в днях?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    $date_start и $date_end — это строки, их нельзя отнять друг от друга 🙂

    Попробуйте так:

    $diff = round( ( strtotime( $date_end ) - strtotime( $date_start ) ) / DAY_IN_SECONDS );

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Как получить id первой и последней записи (по дате) кате» закрыта для новых ответов.