设置默认管理屏幕选项和Metabox顺序

时间:2010-09-05 作者:NetConstructor.com

我正在拼命寻找某种方法(任何方法)来通过函数设置默认的“屏幕选项”和metabox顺序。php文件。这里有人能提供什么帮助吗?

2 个回复
最合适的回答,由SO网友:sorich87 整理而成

在编辑后的页面上设置元框的顺序,您需要删除元框,然后按照所需的顺序再次添加它们。

禁用元框:(根据您的需要进行自定义,查看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\\u meta\\u box功能将其添加到新位置:http://codex.wordpress.org/Function_Reference/add_meta_box. 元框的顺序取决于调用add\\u meta\\u box函数的顺序。E、 g.:使用以下代码片段,注释元框将位于自定义字段元框之前。

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 ADVANCE。php

设置帖子列表页面上显示的列标题,需要使用过滤器manage{$post\\u type}\\u posts\\u列。E、 g.:以下代码片段将删除注释列。

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

    return $posts_columns;
}

add_filter( \'manage_post_posts_columns\', \'my_remove_columns\' );

设置要在帖子列表页面上显示的默认结果

使用过滤器“edit\\u{$post\\u type}\\u per\\u page”和“edit\\u posts\\u per\\u 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\' ); e、 g。add_filter( \'edit_post_per_page\', \'my_edit_post_per_page\' ); 对于职位,add_filter( \'edit_page_per_page\', \'my_edit_post_per_page\' ); 对于页。

或者在函数中使用条件。e、 g.:

函数my\\u edit\\u post\\u per\\u page($per\\u page,$post\\u 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;

SO网友:Nabil Kadimi

在以下示例中,替换{CPT} 使用post类型名称,如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, 您还可以sideadvanced

结束

相关推荐

我可以将类别Metabox添加到附件吗?

我在用register_taxonomy_for_object_type() 将类别分类字段添加到媒体上载(附件)。我正在使用此代码执行此操作:add_action(\'init\', \'reg_tax\'); function reg_tax() { register_taxonomy_for_object_type(\'category\', \'attachment\'); } 这可以在查看图像时为媒体页面添加一个简单的分类文本字段。我真正想要的是让它显示实