要禁止WordPress用户删除某些文章类型(post types)中的文章,您可以使用以下方法之一:
使用插件:
您可以使用WordPress插件来轻松管理文章删除权限。以下是使用插件的步骤:
a. 登录WordPress后台,转到“插件” > “添加新插件”。
b. 在搜索框中输入“User Role Editor”(用户角色编辑器)或类似的关键词,然后安装并激活相应的插件。
c. 安装并激活插件后,转到“用户” > “用户角色编辑器”以配置用户角色权限。
d. 选择要编辑的用户角色(通常是“订阅者”或其他自定义角色),然后找到“文章”或文章类型名称。
e. 您可以在这里设置允许或禁止删除文章的权限。确保将删除权限设置为“不允许”。
f. 单击“更新”以保存更改。
使用自定义代码:
如果您不想使用插件,也可以通过添加一些自定义代码来实现这一目标。在您的主题的functions.php文件中添加以下代码:
// 检查用户是否有删除文章的权限
function custom_check_delete_permission($allcaps, $cap, $args) {
// 要禁止删除的文章类型
$disallowed_post_types = array('post_type_1', 'post_type_2'); // 将post_type_1和post_type_2替换为您要禁止的文章类型
// 获取当前文章的类型
$post_type = isset($args[0]) ? get_post_type($args[0]) : null;
// 检查用户是否要删除的是禁止的文章类型
if (in_array($post_type, $disallowed_post_types)) {
// 如果是禁止的文章类型,禁止删除权限
$allcaps['delete_post'] = false;
}
return $allcaps;
}
// 将自定义权限检查函数添加到'user_has_cap'过滤器
add_filter('user_has_cap', 'custom_check_delete_permission', 10, 3);
请将代码中的post_type_1
和post_type_2
替换为您要禁止删除的文章类型的名称。这段代码将检查用户是否尝试删除指定的文章类型,如果是,将禁止他们执行该操作。
请注意,在使用自定义代码时,务必小心,确保您的主题在更新时不会覆盖这些更改,并且在修改主题文件之前备份您的网站。