it-swarm-ko.tech

기본 관리자 화면 옵션 및 메타 박스 순서 설정

필자는 필 요한 방법으로 (어떤 방법 으로든) functions.php 파일을 통해 기본 "화면 옵션"과 메타 버튼 순서를 설정하고자합니다. 누구든지 여기에서 제공 할 수있는 도움이 있습니까?

28

게시 편집 페이지에서 메타 박스의 순서 설정하기

메타 박스를 제거하고 원하는 순서대로 다시 추가해야합니다.

메타 박스를 사용하지 않으려면 : (필요에 따라 사용자 정의하여 HTML 코드의 metabox ID를보고 함수의 첫 번째 매개 변수로 사용할 이름을 알아야합니다.)

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' );

이들을 제거한 후에 add_meta_box 함수를 사용하여 새로운 위치에 추가 할 수 있습니다 : http://codex.wordpress.org/Function_Reference/add_meta_box . 메타 박스의 순서는 add_meta_box 함수를 호출하는 순서에 따라 다릅니다. 예 : 다음 코드 스 니펫으로 댓글 입력란은 맞춤 입력란 메타 상자 앞에 있습니다.

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' );

Wp-admin/edit-form-advanced.php 파일을보고 싶을 수도 있습니다.

게시물 목록 페이지에 표시되는 열 제목 설정하기

_ {$ post_type} _posts_columns 필터를 사용해야합니다. 예 : 다음 코드 조각은 주석 열을 제거합니다.

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

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

게시 목록 페이지에 표시 될 기본 결과 설정

'edit _ {$ post_type} _per_page'및 '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' );

특정 게시물 유형을 타겟팅하려면 다음 단계를 따르십시오.

  • 예 : add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' ); 사용 게시물은 add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );, 페이지는 add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );.

  • 또는 귀하의 기능 내에서 조건을 사용하십시오. 예 :

    function 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;
    
23
sorich87

다음 예제에서 post, page, book, event, imaginary, foobar ...과 같은 게시 유형 이름으로 {CPT}을 바꾸십시오. 따라서 event이라는 게시물 유형이 있으면 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',
            )
        ),
    );
}

노트:

  • normal과 함께 sideadvanced을 가질 수도 있습니다
  • 값은 쉼표로 구분 된 div id입니다. 페이지 소스 코드를 보거나 추측 할 수 있습니다.
  • 존재하는 대사 산물은 사용자 정의 순서에 포함되지 않고 목록 끝에 자동으로 추가됩니다.
9
Nabil Kadimi