Ustaw domyślne opcje ekranu administratora i kolejność Metabox
28
Desperacko szukam jakiegoś sposobu (w jakikolwiek sposób), aby ustawić domyślne „opcje ekranu” i kolejność metaboxów w pliku functions.php. czy ktoś ma tutaj jakąś pomoc?
Aktualizacja 2014: Dla tych, którzy muszą zmienić kolejność meta-skrzynek, zobacz odpowiedź Nabila poniżej .
rinogo,
Odpowiedzi:
23
Ustawianie kolejności metadanych na stronach edycji postów
Musisz usunąć meta pola i dodać je ponownie w żądanej kolejności.
Aby wyłączyć pola meta: (dostosuj do swoich potrzeb, spójrz na identyfikator metabox w kodzie HTML, aby dowiedzieć się, której nazwy należy użyć jako pierwszego parametru funkcji)
function my_remove_meta_boxes(){
remove_meta_box('postcustom','post','core');
remove_meta_box('commentsdiv','post','core');...}
add_action('admin_menu','my_remove_meta_boxes');
Po ich usunięciu możesz użyć funkcji add_meta_box, aby dodać je w nowych pozycjach: http://codex.wordpress.org/Function_Reference/add_meta_box . Kolejność pól meta zależy od kolejności, w której wywoływana jest funkcja add_meta_box. Np .: w przypadku następującego fragmentu kodu meta-pole komentarzy będzie znajdować się przed meta-polem niestandardowych pól.
Przepraszam, może nie wyjaśniłem się poprawnie. Miałem na myśli meta pola na stronie edycji postów w obszarze administracyjnym, a także ustawiłem domyślną liczbę postów wyświetlanych na stronie listy postów administratora.
NetConstructor.com
1
więc technicznie to nie jest pytanie, to naprawdę 2 pytania?
Tom J Nowell
Zmodyfikowałem swoją odpowiedź. Daj mi znać, jeśli potrzebujesz więcej szczegółów.
sorich87
@ sorich87 dziękuję za odpowiedź, jednak z tego, co pamiętam, nie było sposobu, aby sprecyzować dokładną kolejność każdego metaboksu, czy też był? Może powinienem być bardziej konkretny. Zasadniczo szukam różnych fragmentów kodu, które pozwalają mi wstępnie ustawić różne opcje dla wszystkich użytkowników bez konieczności logowania się na każdym koncie. Przykłady: ustawianie dokładnej kolejności metaboksów na stronach edycji postów, ustawianie tytułu kolumn wyświetlanych na stronie listy postów, ustawianie domyślnych wyników wyświetlanych na stronie listy postów ... takie rzeczy. Z góry dziękuję.
NetConstructor.com,
Zmodyfikowałem swoją odpowiedź.
sorich87
9
W poniższym przykładzie, należy wymienić {CPT}z nazwy typu poczta, jak post, page, book, event, imaginary, foobar... Więc jeśli masz typ pocztowy nazwie event, to musiałby dodać filtr do get_user_option_meta-box-order_event.
add_filter('get_user_option_meta-box-order_{CPT}','metabox_order');function metabox_order( $order ){return array('normal'=> join(",",
array(// vvv Arrange here as you desire'customdiv-{CPT}','authordiv','slugdiv',)),);}
Uwagi:
Wraz z normaltym możesz także mieć sideiadvanced
Wartościami są oddzielone przecinkami identyfikatory div, które można pobrać, wyświetlając kod źródłowy strony lub zgadując
Każdy metaboks, który istnieje, nie jest uwzględniony w niestandardowym zamówieniu, zostanie dodany automatycznie na końcu listy.
{CPT}Nomenklatura nieco mnie zdezorientowała ; dla wyjaśnienia, jeśli masz nazwany typ postu event, musisz dodać filtr dla get_user_option_meta-box-order_event.
Odpowiedzi:
Ustawianie kolejności metadanych na stronach edycji postów
Musisz usunąć meta pola i dodać je ponownie w żądanej kolejności.
Aby wyłączyć pola meta: (dostosuj do swoich potrzeb, spójrz na identyfikator metabox w kodzie HTML, aby dowiedzieć się, której nazwy należy użyć jako pierwszego parametru funkcji)
Po ich usunięciu możesz użyć funkcji add_meta_box, aby dodać je w nowych pozycjach: http://codex.wordpress.org/Function_Reference/add_meta_box . Kolejność pól meta zależy od kolejności, w której wywoływana jest funkcja add_meta_box. Np .: w przypadku następującego fragmentu kodu meta-pole komentarzy będzie znajdować się przed meta-polem niestandardowych pól.
Możesz zajrzeć do pliku wp-admin / edit-form-advanced.php
Określanie, które kolumny będą wyświetlane na stronie listy postów
Musisz użyć filtru zarządzaj _ {$ post_type} _posts_columns. Np .: poniższy fragment usunie kolumnę komentarzy.
Ustawianie domyślnych wyników wyświetlanych na stronie listy postów
Użyj filtrów „edit _ {$ post_type} _per_page” i „edit_posts_per_page”.
Aby kierować na określony typ postu:
użyj
add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );
np.add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );
do postów,add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );
do stron.lub użyj warunku w ramach swojej funkcji. na przykład:
funkcja my_edit_post_per_page ($ per_page, $ post_type) {
źródło
W poniższym przykładzie, należy wymienić
{CPT}
z nazwy typu poczta, jakpost
,page
,book
,event
,imaginary
,foobar
... Więc jeśli masz typ pocztowy nazwieevent
, to musiałby dodać filtr doget_user_option_meta-box-order_event
.Uwagi:
normal
tym możesz także miećside
iadvanced
źródło
{CPT}
Nomenklatura nieco mnie zdezorientowała ; dla wyjaśnienia, jeśli masz nazwany typ postuevent
, musisz dodać filtr dlaget_user_option_meta-box-order_event
.