Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于更改“编辑文章作者”框中作者列表的WordPress筛选器_Php_Wordpress_Custom Post Type_Wordpress Hook - Fatal编程技术网

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']
参数。