Abrufen der IDs eines benutzerdefinierten Beitragstyps

7

Ich habe einen benutzerdefinierten Beitrag "Fallstudien" erstellt, der eine Reihe von Beiträgen enthält.

Ich möchte die IDs jedes dieser Beiträge erhalten, um die Daten zu manipulieren, aber obwohl ich ähnliche Threads betrachte, kann ich keinen Weg finden, dies zu erreichen. Etwas wie;

foreach post oftype custom, get the id

Ich mache eine Funktion, um diese Informationen im Backend anzuzeigen, hier ist der Ausschnitt unten.

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...
}
Myol
quelle

Antworten:

8

Fand die Basis der Antwort im Kodex begraben

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

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    the_ID();
endwhile;
Myol
quelle
2
Sie brauchen nicht echomit the_title()und Sie können auch the_ID()anstelle von verwenden echo get_the_id().
Birgire
'Basis' - nur als Beispiel gezeigt
Myol
1
Beachten Sie den Unterschied zwischen the_*vs- get_the_*Funktionen. In den meisten Fällen ist es wie echovs return.
Birgire
Interessanterweise musste ich für meinen Fall get_the_ * verwenden, um die Informationen in der while-Schleife zu bearbeiten.
Myol
5
Satz fieldszu idsin Ihrer Abfrage , und Sie werden nur eine Reihe von IDs zurück, und deutlich weniger Speicher. auch wollen Sie wahrscheinlich zu setzen , posts_per_pageum -1zu bekommen alle Ihre Beiträge.
Milo
8

get_postsMit dem fieldsParameter können Sie ein einfaches Array von CPT-IDs abrufen.

$all_post_ids = get_posts(array(
    'fields'          => 'ids',
    'posts_per_page'  => -1,
    'post_type' => 'case_studies'
));
Dieser Brasilianer
quelle