Php 用于更改“编辑文章作者”框中作者列表的WordPress筛选器
我想在“编辑文章”页面上的“作者选择”下拉列表中更改自定义文章类型的用户列表。有没有一个过滤器挂钩我可以用这个?我还没有找到任何关于过滤器钩子的信息 钩子应该(理论上)让我返回一个用户数组,这些用户将填充底部的选择框。我想这样做的原因是,我可以有条件地根据不同帖子类型的角色筛选出用户。作为管理员(或其他管理员),我不想在让用户成为作者之前检查用户是否具有特定角色 代码示例:Php 用于更改“编辑文章作者”框中作者列表的WordPress筛选器,php,wordpress,custom-post-type,wordpress-hook,Php,Wordpress,Custom Post Type,Wordpress Hook,我想在“编辑文章”页面上的“作者选择”下拉列表中更改自定义文章类型的用户列表。有没有一个过滤器挂钩我可以用这个?我还没有找到任何关于过滤器钩子的信息 钩子应该(理论上)让我返回一个用户数组,这些用户将填充底部的选择框。我想这样做的原因是,我可以有条件地根据不同帖子类型的角色筛选出用户。作为管理员(或其他管理员),我不想在让用户成为作者之前检查用户是否具有特定角色 代码示例: add_filter('example_filter', 'my_custom_function'); function
add_filter('example_filter', 'my_custom_function');
function my_custom_function ( $users ){
// Get users with role 'my_role' for post type 'my_post_type'
if( 'my_post_type' == get_post_type() ){
$users = get_users( ['role' => 'my_role'] );
}
// Get users with role 'other_role' for post type 'other_post_type'
if( 'other_post_type' == get_post_type() ){
$users = get_users( ['role' => 'other_role'] );
}
return $users;
}
您可以使用钩子“wp\u下拉列表\u用户\u参数” 在主题的functions.php文件中添加以下代码段
add_filter( 'wp_dropdown_users_args', 'change_user_dropdown', 10, 2 );
function change_user_dropdown( $query_args, $r ){
// get screen object
$screen = get_current_screen();
// list users whose role is e.g. 'Editor' for 'post' post type
if( $screen->post_type == 'post' ):
$query_args['role'] = array('Editor');
// unset default role
unset( $query_args['who'] );
endif;
// list users whose role is e.g. 'Administrator' for 'page' post type
if( $screen->post_type == 'page' ):
$query_args['role'] = array('Administrator');
// unset default role
unset( $query_args['who'] );
endif;
return $query_args;
}
让我知道这是否适用于您。我们可以查看您的代码吗?不确定为什么这个问题被否决。。。更新了问题,提供了更多的说明和细节以及一些示例代码。我没有任何代码在我的主题虽然现在,因为我没有一个过滤器挂钩。谢谢!!已经有一段时间了,但那正是我要找的东西!谢谢,我为多个用户角色添加了
['role\u in']
参数。