get_post_types()
Akzeptiert ein Array von Argumenten, die mit den Feldern eines Post-Typ-Objekts übereinstimmen . Sie könnten also so etwas tun (nicht getestet):
$post_types = get_post_types(array(
'public' => true,
'supports' => array( 'editor', 'title', 'thumbnail' )
), 'objects');
Leider können Sie in dieser Funktion nichts wie "ausschließen" festlegen, und Sie erhalten auch nur Beitragstypen, die genau unterstützen 'editor', 'title', 'thumbnail'
, nicht mehr und nicht weniger.
Oder Sie können verwenden get_post_types_by_support()
(nur für WP 4.5 und höher. Beachten Sie auch, dass Sie mit dieser Funktion auch bestimmte Beitragstypen nicht ausschließen können, aber für den speziellen Fall der Unterstützung für editor, title, thumbnail
wird der Beitragstyp für Anhänge in den meisten Fällen ausgeschlossen).
$post_types = get_post_types_by_support( array( 'editor', 'title', 'thumbnail' ) );
Wenn Sie etwas wollen, das auf jeden Fall funktioniert, würde ich versuchen, Post-Typen basierend auf breiteren Kriterien zu erhalten, und dann Ihr eigenes Array erstellen, ungefähr so:
$_post_types = get_post_types_by_support( array( 'editor', 'title', 'thumbnail' ) );
$post_types = [];
foreach($_post_types as $post_type) {
// In most cases, attachment post type won't be here, but it can be
if( $post_type->name !== 'attachment' ) {
$post_types[] = $post_type;
}
}