Wordpress权限问题 - register_post_type()

时间:2013-06-20 08:35:17

标签: php wordpress plugins

通过register_post_type()将自定义帖子类型添加到预先存在的菜单时,编辑页面(wp-admin/edit.php?post_type=locations)不允许显示以下错误消息:You do not have sufficient permissions to access this page.

但是,使用主管理菜单(即'show_in_menu' = true)可以使页面正常。

注意:管理员帐户正在使用;使用这两种方法创建并显示链接,我希望通过预先存在的菜单访问自定义帖子类型 cms

使用的代码如下:

register_post_type("location", array(
    "labels" => array("name" => "Locations", "singular_name" => "Location"),
    "show_ui" => true,
    "show_in_admin_bar" => true,
    "show_in_menu" => "admin.php?page=cms", // => true : works as main menu item
    "supports" => array('title'),
    "show_in_nav_menus" => false,
    "has_archive" => false,
    "public" => true
));

希望有人能对这个问题有所了解。

1 个答案:

答案 0 :(得分:0)

您可能没有使用init操作。您还将帖子类型命名为位置,但不允许在帖子类型名称中使用大写字母。

您的show_in_menu也无效。

functions locations(){
  register_post_type("locations", array(
    "labels" => array("name" => "Locations", "singular_name" => "Location"),
    "show_ui" => true,
    "show_in_nav_menus" => false,
    "show_in_admin_bar" => true,
    "supports" => array('title'),

    // Not allowed to view, link is created as sub-menu item
    "show_in_menu" => "cms"
    // Allowed to view, link is created as main menu item
    "show_in_menu" => true
  ));   
}
add_action( 'init', 'locations' );

有许多小错误。您应该查看codex

中的示例