我在Wordpress中添加了自定义用户类型,自定义帖子类型支持作者(见下文)。自定义用户类型具有作者的所有权限,但“发布帖子”除外,但在要分配给帖子的可能作者列表中不。
我做错了什么?
代码:
if (!get_role('member')) {
add_role('member', 'SFUK Member', array(
'delete_posts' => true,
'edit_posts' => true,
'read' => true,
'upload_files' => true,
'edit_published_posts' => true,
'delete_published_posts' => true
));
}
这是自定义帖子类型:
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => true,
'menu_position' => 0,
'supports' => array('title', 'editor', 'thumbnail', 'page-attributes', 'author')
);
if (!post_type_exists('ent')) {
register_post_type('ent', $args);
remove_post_type_support('ent', 'editor');
}
如果需要更多信息,请与我们联系。
答案 0 :(得分:6)
作者下拉列表创建了以下调用:
wp_dropdown_users( array(
'who' => 'authors',
'name' => 'post_author_override',
'selected' => empty($post->ID) ? $user_ID : $post->post_author,
'include_selected' => true
) );
who
参数表示只列出至少具有“作者”角色的用户,而the Codex page表示当前它是“作者”或空(表示所有用户)。
此功能的过滤器但它将HTML作为输入。您可以为用户创建新查询,然后输出新的HTML下拉列表。这是解决问题的第一种方法。
然而,这个'who'设置为'authors'的函数搜索级别不为0的用户,这很奇怪,因为很久以前用户级别已被弃用。我在Trac上发现a related bug report建议您为您的新角色添加'level_1'功能以解决此问题。这不是一个干净的解决方案,但比从头开始创建过滤器和所有HTML要容易得多。
编辑:我想到了第三个甚至更简单的解决方案:我已经使用插件创建了自定义角色,但从未发现过这个问题,因为我始终从现有角色复制功能,然后修改它们。这样你就不会忘记任何功能,它也会修复这个错误。