自定义“自定义帖子类型”的“编辑帖子”屏幕?


15

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

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

Answers:


16

在此处回答其中一些问题:设置默认管理屏幕选项和元框顺序

要删除永久链接元框:

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

另外,您将不得不使用CSS或JavaScript隐藏#edit-slug-box。请参阅:在Admin中加载外部脚本,但仅针对特定帖子类型?

要禁用快速编辑:

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)
    ...
}

非常感谢。多年来一直在寻找答案!此外,是否可以更改“发布”框中的“预览”按钮链接到的位置?我希望它链接到mysite.com/video?id='post of
id

再次您好-实际上我无法获得您提供的任何代码。永久链接metabox只是禁止将更改保存到永久链接而不是隐藏它,而我根本不能禁用快速编辑链接。有任何想法吗?
fxfuture

我编辑了答案。我刚刚测试了快速编辑代码广告,它可以工作。您正在谈论帖子名称下面的快速编辑链接:wp-admin / edit.php?post_type = sis_course,对吗?
sorich87

太好了,我来看看您发布的其他信息。我可以通过在自定义帖子类型中更改“ hierarchical” => false来隐藏快速编辑。似乎没有什么不同,因为我正在使用Post Types Order插件对其进行排序。谢谢!
fxfuture

替换submit meta box效果很好!它实际上必须在函数的方括号之间包括$ post,即custom_post_submit_meta_box($ post)。这就是所有这三种:)我还想对列表帖子和编辑帖子屏幕进行更多的自定义-您知道参考指南,其中详细介绍了如何删除/替换所有不同的元素吗?
fxfuture
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.