Mam dwie hierarchiczne niestandardowe taksonomie, każda na odpowiadającym niestandardowym typie postu. Chciałbym usunąć metaboks dla każdego z ekranu edycji typu posta.
Przeczytałem Usuń niestandardowy metaboks taksonomii z niestandardowego typu postu i Jak usunąć metaboks taksonomii w stylu kategorii (hierarchiczny)? ale wciąż utknąłem.
Używam funkcji:
function remove_taxonomies_metaboxes() {
remove_meta_box( 'partner_typediv', 'partners', 'normal' );
remove_meta_box( 'person_typediv', 'people', 'normal' );
}
add_action( 'admin_menu' , 'remove_taxonomies_metaboxes' );
Rozpakowałem przedrostki post_typ i custom_taxonomies, ale to wszystko. Próbowałem użyć admin_menu
haka i add_meta_boxes
haka zalecanego przez Codex. Próbowałem obu normal
i side
dla trzeciego parametru.
Powyższa funkcja znajduje się w mu-plugins
pliku poniżej funkcji, która rejestruje typy postów i taksonomie.
EDYCJA: To była literówka w funkcji register_taxonomy. Jestem okropną osobą. Dziękuję wszystkim za pomoc. Wciąż nauczyłem się kilku rzeczy!
'show_ui' => false
?Odpowiedzi:
Jeśli ręcznie rejestrujesz swoją niestandardową taksonomię za pomocą register_taxonomy , możesz przekazać argumenty, aby kontrolować, gdzie pojawia się metaboks.
W poniższym przykładzie ustawienie
show_ui
sięfalse
by całkowicie usunąć METABOX z ekranu edycji, na ekranie szybkiej edycji i menu administratora. Ale jeśli ustawiszshow_ui
siętrue
można osiągnąć kontrolę bardziej zróżnicowany wtedy użyciushow_in_quick_edit
imeta_box_cb
argumentów (ustawienie później do fałszywych ukrywa METABOX na ekranie edycji CPT jako pożądany).źródło
Mówisz, że chcesz usunąć pola z
post
ekranu edycji, a nie z ekranu Typ postu, więc zakładając, że powinieneś być w stanie zarejestrować swoją taksonomię tylko dla typów postów, do których ma się stosować, i całkowicie tego unikać. Przykład w Kodeksie rejestruje przykładową taksonomię tylko dlabook
typu postu, takiego jak:Myślę, że właśnie to musisz zrobić, ale nie opublikowałeś żadnego kodu rejestracyjnego dla typów poczt ani taksonomii.
Jeśli sam utworzyłeś metaboksy - to znaczy te pola nie są domyślnymi - to sposobem na uniknięcie tego problemu jest zarejestrowanie metaboksów w hakach specyficznych dla typu post :
Lub postępuj zgodnie z powyższym przykładem:
Jedno z tych podejść powinno rozwiązać to dla Ciebie. Nie sądzę, że powinieneś
remove_meta_box
w ogóle korzystać.Jeśli próbujesz usunąć metadane z typu posta, do którego są zarejestrowani, działa to (ponownie zgodnie z przykładem w Kodeksie):
Jestem pewien, że
admin_menu
to za wcześnie, ale tego nie zweryfikowałem.add_metaboxes
działa również dla mnie. Nie wiem, dlaczego ci to nie działa.źródło
Używając ACF do niestandardowego zarządzania taksonomiami, domyślne metaboksy są niepotrzebne. Próbowałem z powodzeniem tego kodu:
Niższy priorytet (100) pozwala, aby ten kod działał również, jeśli taksonomie są tworzone przez wtyczkę taką jak CPT-UI.
źródło
remove_meta_box( 'tagsdiv-'.$taxonomy, $post_type, 'side' );