如何在自定义贴子类型的编辑页面上强制一栏布局?

时间:2011-08-13 作者:Armand

我已经使用自定义帖子类型创建了一个插件,我需要将默认的两列帖子页面强制为一列。同时Publish metabox必须移动到底部。我需要通过函数进行一些操作。

我有一些来自WPSE的解决方案,但我找到的唯一解决方案实际上隐藏了“发布”元数据库。我似乎不明白为什么。

有什么办法吗?

3 个回复
SO网友:Bainternet

有一个名为get_user_option_meta-box-order_{$page} 哪里$page 是帖子类型的名称。只要确保submitdiv 是数组中的最后一个值:

add_filter( \'get_user_option_meta-box-order_post\', \'wpse25793_one_column_for_all\' );
function wpse25793_one_column_for_all( $order )
{
    return array(
        \'normal\'   => join( ",", array(
            \'postexcerpt\',
            \'formatdiv\',
            \'trackbacksdiv\',
            \'tagsdiv-post_tag\',
            \'categorydiv\',
            \'postimagediv\',
            \'postcustom\',
            \'commentstatusdiv\',
            \'slugdiv\',
            \'authordiv\',
            \'submitdiv\',
        ) ),
        \'side\'     => \'\',
        \'advanced\' => \'\',
    );
}

SO网友:Chip Bennett

一种方法是删除原始元盒,然后使用更新的参数重新添加该元盒。例如,对于带有slug的自定义帖子类型,这将把“特色图片”元框从侧栏移到主栏cpt-slug:

编辑发布元框的参数为submitdiv, 正确的回调是post_submit_meta_box(); 我已经更新了下面的代码以反映这些正确的参数。我还改变了add_meta_box() $context 参数来自\'high\'\'low\', 以便在底部添加发布元框:

<?php
function wpse25793_move_post_metaboxes( $post ) {
    global $wp_meta_boxes;

    remove_meta_box( \'submitdiv\', \'cpt-slug\', \'side\' );
    add_meta_box( \'submitdiv\', __( \'Publish\' ), \'post_submit_meta_box\', \'cpt-slug\', \'normal\', \'low\' );
}
add_action( \'add_meta_boxes_cpt-slug\', \'wpse25793_move_post_metaboxes\' );
?>
“发布”元框的方法应该相同。您只需删除/添加发布元框,而不是特色图像元框。

SO网友:CRavon

回答问题的第二部分-How to force one column, 你可以用get_user_option_screen_layout_{Post_type} 滤器让我们说product 岗位类型:

$func = function( $result, $option, $user ){
    return \'1\';
};
add_filter( "get_user_option_screen_layout_product", $func, 10, 3 );

结束

相关推荐

是否使用GET_POSTS仅列出每个子类别中的一个帖子?

自定义帖子类型为“projects”,分级分类为“projects\\u category”projects - big-corporates -- company one ---- first project 1 ---- second project 1 ---- third project 1 -- company two ---- first project 2 ---- second project 2 -- company