get_post_types()
ยอมรับอาร์เรย์ของการขัดแย้งเพื่อให้ตรงกับสาขาที่วัตถุประเภทโพสต์ ดังนั้นคุณสามารถทำสิ่งนี้ (ไม่ผ่านการทดสอบ):
$post_types = get_post_types(array(
'public' => true,
'supports' => array( 'editor', 'title', 'thumbnail' )
), 'objects');
น่าเสียดายที่คุณไม่สามารถตั้งค่าการบันทึกอย่าง "แยก" ในฟังก์ชั่นนี้และคุณจะได้รับเฉพาะประเภทโพสต์ที่สนับสนุนอย่างแน่นอน 'editor', 'title', 'thumbnail'
ไม่มากและไม่น้อย
หรือคุณสามารถใช้get_post_types_by_support()
(เฉพาะสำหรับ WP 4.5 และสูงกว่านอกจากนี้โปรดทราบว่าคุณไม่สามารถยกเว้นประเภทโพสต์เฉพาะด้วยฟังก์ชั่นนี้ แต่สำหรับกรณีเฉพาะของการสนับสนุนสำหรับeditor, title, thumbnail
ประเภทโพสต์สิ่งที่แนบจะถูกยกเว้นในกรณีส่วนใหญ่ )
$post_types = get_post_types_by_support( array( 'editor', 'title', 'thumbnail' ) );
หากคุณต้องการบางสิ่งบางอย่างที่จะทำงานในกรณีใด ๆ ฉันจะลองโพสต์ประเภทตามเกณฑ์ที่กว้างขึ้นจากนั้นสร้างอาร์เรย์ของคุณเองดังนี้:
$_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;
}
}