如何删除自定义帖子类型的“创建新帖子”条目?

时间:2012-03-08 作者:hannit cohen

我有一个自定义的帖子类型,它是使用网站上的表单创建的。我想从wordpress管理中禁用新建帖子。有没有办法做到这一点?

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

有几种方法(取决于您尝试的操作):

如果是关于“发布”按钮的,您可以…

你好;使用从目标角色中删除功能remove_cap()publish button 1)

参见@toscho的答案底部

你好;或者whole meta box 2)

remove_meta_box( \'submitdiv\', \'custom_post_id\', \'side\' );
简化版

如果是关于内置的“post”post类型,您可以…

你好;只需通过css或js隐藏菜单项即可;使用取消设置菜单项

add_action( \'admin_menu\', \'myprefix_adjust_the_wp_menu\', 999 );
function myprefix_adjust_the_wp_menu() {
  $page = remove_submenu_page( \'edit.php\', \'post-new.php\' );
  //or for custom post type \'myposttype\'.
  //$page = remove_submenu_page( \'edit.php?post_type=myposttype\', \'post-new.php?post_type=myposttype\' );
}
你好;使用完全阻止保存per_save_post 挂钩和$_GET[\'action\']

你好;当post-new.php 是否加载

SO网友:Seamus Leahy

有一种元能力create_posts 没有文档记录,但WordPress在插入各种“添加新”按钮和链接之前使用它进行检查。在自定义帖子类型声明中,添加capabilities (不要混淆cap) 然后将其设置为false 如下所示。

register_post_type( \'custom_post_type_name\', array(
  \'capabilities\' => array(
    \'create_posts\' => false,
  )
));

SO网友:clap

@hannit cohen,

这是在自定义PostType中隐藏“添加新”或“创建新”按钮的最佳方法

\'capability_type\'    => \'post\',

        \'capabilities\'       => array( \'create_posts\' => false ),       

        \'map_meta_cap\'       => true,
它禁止在“管理”菜单两侧和帖子类型列表上方的自定义帖子类型中创建新帖子。

结束