Получение идентификаторов пользовательского типа записи


Я сделал специальный пост "тематические исследования", в котором есть несколько сообщений.

Я хочу получить идентификаторы каждого из этих сообщений для обработки данных, но, несмотря на просмотр похожих потоков, я не могу собрать воедино способ достижения этой цели. Что-то вроде;

foreach post oftype custom, get the id

Я создаю функцию для отображения этой информации в серверной части, вот фрагмент ниже.

function display_meta_box( $case_study ) 
{
    if (in_array('case_studies', get_post_types()))
    {
        ...get the IDs of all posts of type 'case_studies'...
    }
    ...do other stuff with IDs...
}
Author: myol, 2014-10-20

2 answers

Вы можете получить простой массив идентификаторов CPT, используя get_posts с параметром fields.

$all_post_ids = get_posts(array(
    'fields'          => 'ids',
    'posts_per_page'  => -1,
    'post_type' => 'case_studies'
));
 10
Author: That Brazilian Guy, 2018-04-18 18:12:54

Нашел основу ответа, скрытого в кодексе

$args = array( 'post_type' => 'case_studies');

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    the_ID();
endwhile;
 8
Author: myol, 2014-10-20 14:10:07