Получить ID последней записи

7 сент. 2011 г., 10:19:09
Просмотры: 24K
Голосов: 12

Я везде искал лучший способ сделать это.

Мне нужно получить ID последней записи определенного post_type.

Как я могу сделать это наиболее эффективным способом (под эффективностью я подразумеваю использование минимального количества запросов, без циклов и перемотки записей)?

Наверняка есть быстрый метод?

0
Все ответы на вопрос 2
4
27
// Получаем последнюю запись пользовательского типа поста
$latest_cpt = get_posts("post_type=yourcpt&numberposts=1");
// Выводим ID этой записи
echo $latest_cpt[0]->ID

Единственный способ, который может быть дешевле (по ресурсам), чем приведенный выше - это написать собственный SQL запрос, который будет возвращать только один пост и только колонку ID.

7 сент. 2011 г. 10:31:42
Комментарии

Да, именно это! Я всё время крутился вокруг да около. Спасибо, @brady

Niels Niels
7 сент. 2011 г. 10:35:58

get_posts("post_type=yourcpt&numberposts=1&fields=ids") - возвращает только ID записи, ничего лишнего, так немного быстрее :)

passatgt passatgt
12 июн. 2015 г. 12:30:56

post_type=post - чтобы получить стандартные записи.

Travis van der Font Travis van der Font
11 июн. 2018 г. 13:27:09

Используя метод @passatgt, оператор echo будет выглядеть как echo $latest_cpt[0];, поскольку невозможно получить ->ID из объекта.

catgofire catgofire
25 янв. 2021 г. 23:12:32
0

Более чистый SQL-подход:

function GetLastPostId()
{
    global $wpdb;

    // Запрос на получение ID последней записи
    $query = "SELECT ID FROM $wpdb->posts ORDER BY ID DESC LIMIT 0,1";

    // Выполнение запроса и получение результата
    $result = $wpdb->get_results($query);
    $row = $result[0];
    $id = $row->ID;

    return $id;
}
16 сент. 2017 г. 10:34:38