WordPress

Ustaw domyślne opcje ekranu administratora i kolejność Metabox

  • 6 września, 2010
  • 3 min read
Ustaw domyślne opcje ekranu administratora i kolejność Metabox


Ustawianie kolejności metaboxów na stronach edycji postów

Będziesz musiał usunąć meta-pola i dodać je ponownie w żądanej kolejności.

Aby wyłączyć metaboxy: (dostosuj do swoich potrzeb, spójrz na identyfikator metaboxa w kodzie HTML, aby wiedzieć, jakiej nazwy powinieneś 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 na nowych pozycjach: Kolejność metaboxów zależy od kolejności wywołania funkcji add_meta_box. Np.: w przypadku poniższego fragmentu kodu metapole komentarzy będzie znajdować się przed metapolem pól niestandardowych.

function my_add_meta_boxes( $post_type, $post ) {
    if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
        add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core');

    if ( post_type_supports($post_type, 'custom-fields') )
        add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core');

    ...
}

add_action( 'add_meta_boxes', 'my_add_meta_boxes' );

Możesz zajrzeć do pliku wp-admin/edit-form-advanced.php

Ustawienie, które tytuły kolumn będą wyświetlane na stronie listy postów

Musisz użyć filtra zarządzaj_{$post_type}_posts_columns. Np.: poniższy fragment usunie kolumnę komentarzy.

function my_remove_columns( $posts_columns ) {
    unset( $posts_columns['comments'] );

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

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”.

function my_edit_post_per_page( $per_page, $post_type ) {

    $edit_per_page="edit_" . $post_type . '_per_page';
    $per_page = (int) get_user_option( $edit_per_page );
    if ( empty( $per_page ) || $per_page < 1 )
        $per_page = 1;

    return $per_page;
}

add_filter( 'edit_posts_per_page', 'my_edit_post_per_page' );

Aby kierować reklamy na konkretny typ postu:

  • używać add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' ); np add_filter( 'edit_post_per_page', 'my_edit_post_per_page' ); za posty, add_filter( 'edit_page_per_page', 'my_edit_post_per_page' ); dla stron.

  • lub użyj warunku w swojej funkcji. np:

    funkcja my_edit_post_per_page( $per_page, $post_type ) {

    if( $post_type == 'post' ) {
        $edit_per_page="edit_" . $post_type . '_per_page';
        $per_page = (int) get_user_option( $edit_per_page );
        if ( empty( $per_page ) || $per_page < 1 )
            $per_page = 1;
    }
    
    
    return $per_page;
    


Źródło

Warto przeczytać!  Przekieruj użytkownika, jeśli jest zalogowany