与快速聊天后Magicroundabout 世卫组织指出了Justin Tadlock, 事实证明,除非对角色使用add\\u cap,否则自定义帖子类型的功能实际上并不存在,例如,对于以下自定义帖子类型:
add_action( \'init\', \'register_cpt_gallery\' );
function register_cpt_gallery() {
$labels = array(
\'name\' => __( \'Galleries\', \'gallery\' ),
\'singular_name\' => __( \'Gallery\', \'gallery\' ),
\'add_new\' => __( \'Add New\', \'gallery\' ),
\'add_new_item\' => __( \'Add New Gallery\', \'gallery\' ),
\'edit_item\' => __( \'Edit Gallery\', \'gallery\' ),
\'new_item\' => __( \'New Gallery\', \'gallery\' ),
\'view_item\' => __( \'View Gallery\', \'gallery\' ),
\'search_items\' => __( \'Search Galleries\', \'gallery\' ),
\'not_found\' => __( \'No galleries found\', \'gallery\' ),
\'not_found_in_trash\' => __( \'No galleries found in Trash\', \'gallery\' ),
\'parent_item_colon\' => __( \'Parent Gallery:\', \'gallery\' ),
\'menu_name\' => __( \'Galleries\', \'gallery\' ),
);
$args = array(
\'labels\' => $labels,
\'hierarchical\' => true,
\'description\' => \'Image galleries for teachers classes\',
\'supports\' => array( \'title\', \'editor\', \'author\'),
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'menu_icon\' => get_bloginfo(\'template_url\') . \'/images/imagegallery.png\',
\'show_in_nav_menus\' => true,
\'publicly_queryable\' => true,
\'exclude_from_search\' => false,
\'has_archive\' => true,
\'query_var\' => true,
\'can_export\' => true,
\'rewrite\' => true,
\'capabilities\' => array(
\'edit_post\' => \'edit_gallery\',
\'edit_posts\' => \'edit_galleries\',
\'edit_others_posts\' => \'edit_other_galleries\',
\'publish_posts\' => \'publish_galleries\',
\'read_post\' => \'read_gallery\',
\'read_private_posts\' => \'read_private_galleries\',
\'delete_post\' => \'delete_gallery\'
),
// as pointed out by iEmanuele, adding map_meta_cap will map the meta correctly
\'map_meta_cap\' => true
);
register_post_type( \'gallery\', $args );
}
应将其他功能添加到角色中,以使权限在后端实际工作,包括“管理员”,例如:
function add_theme_caps() {
// gets the administrator role
$admins = get_role( \'administrator\' );
$admins->add_cap( \'edit_gallery\' );
$admins->add_cap( \'edit_galleries\' );
$admins->add_cap( \'edit_other_galleries\' );
$admins->add_cap( \'publish_galleries\' );
$admins->add_cap( \'read_gallery\' );
$admins->add_cap( \'read_private_galleries\' );
$admins->add_cap( \'delete_gallery\' );
}
add_action( \'admin_init\', \'add_theme_caps\');
我希望这对其他人有用。
此外_x()
translation函数要求第二个参数为string $context
, 这是一个简短的描述string $domain
. 如果不提供说明,请使用__()
而是具有string $domain
作为第二个参数。