Получение ID записей произвольного типа
Я создал произвольный тип записи 'case studies' с несколькими записями.
Я хочу получить ID каждой из этих записей для манипуляции данными, но несмотря на просмотр похожих тем, я не могу понять, как это сделать. Что-то вроде:
для каждой записи произвольного типа получить id
Я создаю функцию для отображения этой информации в административной панели, вот фрагмент кода ниже.
function display_meta_box( $case_study )
{
if (in_array('case_studies', get_post_types()))
{
// ...получить ID всех записей типа 'case_studies'...
}
// ...выполнить другие действия с ID...
}

Вы можете получить простой массив ID записей произвольного типа (CPT), используя функцию get_posts
с параметром fields
.
$all_post_ids = get_posts(array(
'fields' => 'ids', // Получаем только ID записей
'posts_per_page' => -1, // Все записи без ограничения
'post_type' => 'case_studies' // Тип записей "Кейсы"
));

Вам не нужен echo
с the_title()
, также вы можете использовать the_ID()
вместо echo get_the_id()
.

Обратите внимание на разницу между функциями the_*
и get_the_*
. В большинстве случаев это как разница между echo
и return
.

Интересно, что в моем случае мне потребовалось использовать get_the_* для манипуляции информацией внутри цикла while.

установите параметр fields
в значение ids
в вашем запросе, и вы получите просто массив ID, что значительно снизит использование памяти. Также вам, вероятно, стоит установить posts_per_page
в -1
, чтобы получить все записи.

@Milo Спасибо, но в данном случае мне действительно нужны заголовки каждого возвращаемого кастомного поста. Если бы я возвращал ID и затем использовал get_the_title(id), была бы производительность лучше, чем в текущей реализации?
