get_post_types()
chấp nhận một mảng các đối số để khớp với các trường của một đối tượng loại bài đăng . Vì vậy, bạn có thể làm một cái gì đó như thế này (không được thử nghiệm):
$post_types = get_post_types(array(
'public' => true,
'supports' => array( 'editor', 'title', 'thumbnail' )
), 'objects');
Thật không may, bạn không thể đặt đôi khi như "loại trừ" trong chức năng này và bạn cũng chỉ nhận được các loại bài đăng hỗ trợ chính xác 'editor', 'title', 'thumbnail'
, không hơn không kém.
Hoặc bạn có thể sử dụng get_post_types_by_support()
(chỉ dành cho WP 4.5 trở lên. Ngoài ra, lưu ý rằng bạn không thể loại trừ các loại bài đăng cụ thể với chức năng này, nhưng đối với trường hợp hỗ trợ cụ thể editor, title, thumbnail
, loại bài đăng đính kèm sẽ bị loại trừ trong hầu hết các trường hợp).
$post_types = get_post_types_by_support( array( 'editor', 'title', 'thumbnail' ) );
Nếu bạn muốn một cái gì đó sẽ hoạt động trong mọi trường hợp, tôi sẽ cố gắng để có được các loại bài đăng dựa trên một tiêu chí rộng hơn, sau đó xây dựng mảng của riêng bạn, đại loại như thế này:
$_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;
}
}