要禁止WordPress用户删除某些文章类型(post types)中的文章,您可以使用以下方法之一:

  1. 使用插件:

    您可以使用WordPress插件来轻松管理文章删除权限。以下是使用插件的步骤:

    WordPress 禁止用户删除某些文章类型中的文章

    a. 登录WordPress后台,转到“插件” > “添加新插件”。

    b. 在搜索框中输入“User Role Editor”(用户角色编辑器)或类似的关键词,然后安装并激活相应的插件。

    c. 安装并激活插件后,转到“用户” > “用户角色编辑器”以配置用户角色权限。

    d. 选择要编辑的用户角色(通常是“订阅者”或其他自定义角色),然后找到“文章”或文章类型名称。

    e. 您可以在这里设置允许或禁止删除文章的权限。确保将删除权限设置为“不允许”。

    f. 单击“更新”以保存更改。

  2. 使用自定义代码:

    如果您不想使用插件,也可以通过添加一些自定义代码来实现这一目标。在您的主题的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_1post_type_2替换为您要禁止删除的文章类型的名称。这段代码将检查用户是否尝试删除指定的文章类型,如果是,将禁止他们执行该操作。

请注意,在使用自定义代码时,务必小心,确保您的主题在更新时不会覆盖这些更改,并且在修改主题文件之前备份您的网站。