2013-06-20 84 views
1

當經由register_post_type()添加自定義後類型到預先存在的菜單,編輯頁面(wp-admin/edit.php?post_type=locations)不允許視圖 - 錯誤信息示出:You do not have sufficient permissions to access this page.WordPress的權限問題 - register_post_type()

然而,使用主管理菜單(即'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 
)); 

希望有人能在這個問題上提出了一些問題。

回答

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

+0

中的示例它正在通過'init'鉤子調用;並且大寫字母是早先確定的,但不是問題。 「show_in_menu」的無效性質是什麼? –

+0

您是否閱讀了法典? http://codex.wordpress.org/register_post_type#Arguments關於'show_in_menu'的部分 – janw

+0

的確我做到了。 'cms'從'admin.php?page = cms'縮短 - 抱歉不提。我會更新預覽代碼。 –