it-swarm.com.de

Liste aller registrierten Beitragstypen abrufen

Ich möchte eine Liste (Array) aller von mir registrierten Beitragstypen erhalten.

Genau ich möchte ihre Schnecken abrufen.

Könnte mir jemand helfen? Vielen Dank!

3
unfulvio

@ EAManns Antwort ist korrekt, aber es gibt bereits eine integrierte WordPress-Funktion zum Abrufen aller registrierten Beitragstypen: get_post_types

<?php
// hook into init late, so everything is registered
// you can also use get_post_types where ever.  Any time after init is usually fine.
add_action( 'init', 'wpse34410_init', 0, 99 );
function wpse34410_init() 
{
    $types = get_post_types( [], 'objects' );
    foreach ( $types as $type ) {
        if ( isset( $type->rewrite->slug ) ) {
            // you'll probably want to do something else.
            echo $type->rewrite->slug;
        }
    }
}
6
chrisguitarguy

Wenn Sie register_post_type() aufrufen, wird der neue Beitragstyp einer globalen Variablen mit dem Namen $wp_post_types hinzugefügt. So können Sie eine Liste aller Ihrer Beitragstypen erhalten:

function get_registered_post_types() {
    global $wp_post_types;

    return array_keys( $wp_post_types );
}

Die Variable $wp_post_types ist ein Array, das Ihre CPT-Definitionen enthält, wobei jeder Satz von CPT-Argumenten (Bezeichnungen, Funktionen usw.) dem Slug des CPT zugeordnet ist. Wenn Sie array_keys() aufrufen, erhalten Sie eine Reihe der Slugs Ihrer CPTs.

1
EAMann