返回

WordPress 如何让“business-owner”角色创建、编辑 CPT 文章?

php

WordPress 允许“business-owner”角色创建和编辑自定义文章类型文章的解决方案

介绍

默认情况下,只有 WordPress 管理员可以创建和编辑自定义文章类型 (CPT) 文章。然而,可以通过添加自定义代码来扩展权限,允许其他用户角色执行这些操作。本文将指导你逐步实现此功能,让“business-owner”角色能够发布和编辑“products”CPT 文章。

步骤指南

1. 添加代码

将以下代码添加到你的主题 functions.php 文件中:

function pbt_add_members_to_dropdown( $query_args, $r ) {

    $query_args['role'] = array('business-owner');

    // Unset the 'who' as this defaults to the 'author' role
    unset( $query_args['who'] );

    return $query_args;
}
add_filter( 'wp_dropdown_users_args', 'pbt_add_members_to_dropdown', 10, 2 );

2. 设置用户权限

转到“用户”>“所有用户”,编辑“business-owner”角色并确保已启用“编辑他人文章”和“发布文章”权限。

3. 测试

转到“产品”>“添加新产品”,你现在应该可以看到“business-owner”角色出现在作者下拉列表中。

代码说明

pbt_add_members_to_dropdown() 函数使用 wp_dropdown_users_args 过滤器修改作者选择查询参数。$query_args['role'] 指定要添加的用户角色,而 unset( $query_args['who'] ) 删除将查询限制为 author 角色的默认参数。

结论

通过实施这些步骤,你可以允许“business-owner”角色发布和编辑“products”CPT 文章。这提供了更灵活的用户角色管理,允许企业主轻松更新产品内容。

常见问题解答

1. 此代码会影响其他 CPT 吗?

不,此代码仅适用于“products”CPT。

2. 我可以添加多个用户角色吗?

是的,只需在 $query_args['role'] 数组中添加额外的角色名称即可。

3. 为什么需要编辑他人文章权限?

此权限允许用户编辑其他“business-owner”创建的文章。

4. 我可以在不添加代码的情况下执行此操作吗?

否,需要自定义代码才能添加非管理员用户角色。

5. 如何还原更改?

从 functions.php 文件中删除 pbt_add_members_to_dropdown() 函数,并保存更改。