get_post_types()
accepte un tableau d'arguments pour correspondre aux champs d'un objet de type post . Donc, vous pouvez faire quelque chose comme ça (non testé):
$post_types = get_post_types(array(
'public' => true,
'supports' => array( 'editor', 'title', 'thumbnail' )
), 'objects');
Malheureusement, vous ne pouvez pas définir quelque chose comme "exclure" dans cette fonction, et vous n'obtenez que des types de messages qui prennent en charge exactement 'editor', 'title', 'thumbnail'
, ni plus ni moins.
Ou vous pouvez utiliser get_post_types_by_support()
(uniquement pour WP 4.5 et supérieur. Notez également que vous ne pouvez pas non plus exclure des types de publication spécifiques avec cette fonction, mais pour le cas spécifique de prise en charge de editor, title, thumbnail
, le type de publication de pièce jointe sera exclu dans la plupart des cas).
$post_types = get_post_types_by_support( array( 'editor', 'title', 'thumbnail' ) );
Si vous voulez quelque chose qui fonctionnera dans tous les cas, j'essaierais d'obtenir des types de publication basés sur des critères plus larges, puis de créer votre propre tableau, quelque chose comme ceci:
$_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;
}
}