0Day Forums
WordPress: Custom Users not Appearing in Author box - Printable Version

+- 0Day Forums (https://zeroday.vip)
+-- Forum: Coding (https://zeroday.vip/Forum-Coding)
+--- Forum: CMS (https://zeroday.vip/Forum-CMS)
+---- Forum: WordPress (https://zeroday.vip/Forum-WordPress)
+---- Thread: WordPress: Custom Users not Appearing in Author box (/Thread-WordPress-Custom-Users-not-Appearing-in-Author-box)



WordPress: Custom Users not Appearing in Author box - glumpish3244 - 07-27-2023

<br />
I've added a **custom user type** in Wordpress, the **custom post type** supports Authors(See below). The custom user type has all the privileges of an author except for 'publish posts', but is **not** on the list of possible authors to assign to the post.

What am I doing wrong?

Code:

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
));
}
and here is the custom post type :

$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');

}

Let me know if more information is needed.


RE: WordPress: Custom Users not Appearing in Author box - minanibnjp - 07-27-2023

The authors dropdown is created the following call:

wp_dropdown_users( array(
'who' => 'authors',
'name' => 'post_author_override',
'selected' => empty($post->ID) ? $user_ID : $post->post_author,
'include_selected' => true
) );
The `who` argument means that only users with at least 'author' role will be listed, and [the Codex page][1] says that currently it's either 'authors' or empty (meaning all users).
There is **a filter for this function** but it takes the HTML as input. You could create a new query for users and then output a new HTML dropdown. This is the first way to solve your problem.

However, this function with 'who' set to 'authors' searches for users whose level is not 0 which is quite strange since user levels have been deprecated long ago. I've found [a related bug report][2] on Trac recommending that you **add a 'level_1' capability** to your new role to fix this. This is not a clean solution but much easier than creating a filter and all HTML from scratch.

**EDIT**: A third and even more simple solution just came to my mind: I've created custom roles with plugins but never noticed this problem because I was always **copying capabilities from existing roles** and then modifying them. This way you won't forget any capabilities and it will also fix this bug.


[1]:

[To see links please register here]

[2]:

[To see links please register here]