Próbuję pobrać listę obejmującą zarówno wbudowane, jak i niestandardowe typy postów:
$post_types = get_post_types(array(
'public' => TRUE,
), 'objects');
Powyższy prawie działa, ale chciałbym, aby wykluczyć attachment
z tej listy, tylko wracając pocztowych typy z obsługą konkretnego takich jak editor
, title
i thumbnail
. czy to możliwe?
custom-post-types
post-type-support
Kod cyklonowy
źródło
źródło
get_post_types()
akceptuje tablicę argumentów zgodną z polami obiektu typu post . Więc możesz zrobić coś takiego (nie testowane):Niestety w tej funkcji nie można ustawić czegoś takiego jak „wykluczenie”, a także otrzymujesz tylko typy postów, które dokładnie obsługują
'editor', 'title', 'thumbnail'
, nie więcej i nie mniej.Lub możesz użyć
get_post_types_by_support()
(tylko dla WP 4.5 i nowszych. Pamiętaj też, że nie można wykluczyć określonych typów postów za pomocą tej funkcji, ale w konkretnym przypadku wsparcia dlaeditor, title, thumbnail
typu postu załącznik zostanie w większości przypadków wykluczony ).Jeśli chcesz czegoś, co zadziała w każdym przypadku, postaram się uzyskać typy postów oparte na szerszych kryteriach, a następnie zbuduj własną tablicę, coś takiego:
źródło
supports
nie wydaje się działać? Mam niestandardowy typ posta, który obsługuje,editor
a jeśli go używamsupports => array('editor')
, otrzymuję pusty wynik? Twoje drugie podejście wydaje się jednak działać.get_post_types_by_support()
wsparcia, aby to osiągnąć.Najprostszym podejściem do pytania PO byłoby po prostu usunięcie „przywiązania” ze zwróconej tablicy;
Chociaż nie jest tak elegancki jak inne rozwiązania, ma najmniejszy narzut.
źródło