完全自定义特定自定义帖子类型的编辑邮政管理屏幕的最佳方法是什么?

我已经在创建自定义帖子类型的一定程度上对其进行了自定义 - 添加其他字段等,但是我想删除许多元素,例如永久链接,预览帖子,禁用快速编辑等

有帮助吗?

解决方案

其中一些问题在这里回答: 设置默认管理屏幕选项和Metabox订单

要删除永久链接Metabox:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

另外,您将不得不使用CSS或JavaScript隐藏#编辑插曲框。看: 在管理员中加载外部脚本,但仅适用于特定的帖子类型?

禁用快速编辑:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

要更改预览链接,您可以使用“ Preview_post_link”过滤器,但是仅在帖子尚未发布时起作用。因此,解决方案是删除提交的元框并添加自己的修改后:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}
许可以下: CC-BY-SA归因
scroll top