functions.php 파일을 통해 기본 "화면 옵션"과 메타 박스 순서를 설정하는 방법 (필요한 방법)을 필사적으로 찾고 있습니다. 누구든지 그들이 여기에서 제공 할 수있는 도움이 있습니까?
functions.php 파일을 통해 기본 "화면 옵션"과 메타 박스 순서를 설정하는 방법 (필요한 방법)을 필사적으로 찾고 있습니다. 누구든지 그들이 여기에서 제공 할 수있는 도움이 있습니까?
답변:
메타 상자를 제거하고 원하는 순서대로 다시 추가해야합니다.
메타 박스를 비활성화하려면 : (필요에 따라 사용자 정의하고 html 코드에서 메타 박스 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 파일을 볼 수 있습니다
필터 manage _ {$ 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' );
페이지를.
또는 함수 내에서 조건을 사용하십시오. 예 :
함수 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;
다음 예에서 교체 {CPT}
후 유형 이름과 같은 post
, page
, book
, event
, imaginary
, foobar
...라는 이름의 포스트 유형이 그렇다면 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
할 수도 side
있고advanced
{CPT}
명칭 에 다소 혼란 스러웠다 . 명확히하기 위해 이름이라는 게시물 유형 인 event
경우에 대한 필터를 추가해야합니다 get_user_option_meta-box-order_event
.