禁用删除媒体wordpress

时间:2011-08-06 03:30:04

标签: wordpress media

这就是我现在一直试图弄清楚如何做几个小时的事情。

我希望作者角色能够通过帖子将内容上传到媒体库,并能够查看整个媒体库。我不想要的是让作者角色删除任何媒体,甚至是他们自己的媒体。

我已经考虑过在上传完成后自动将作者切换为“媒体”用户,但我希望有更清洁的方式。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

WordPress有许多地方会让用户删除图像,因此尝试隐藏它们都很有挑战性(而且很危险,因为新的插件或WordPress版本可能会添加另一个)。但是,您可以添加以下函数以防止删除并抛出错误(不漂亮但有效)。如果您想要更精细的控制级别,可以通过添加用于删除图像的自定义功能来增强此功能。

SPIx->CR1

答案 1 :(得分:0)

“delete_media”没有内置功能。我认为这包含在“delete_posts”中,因为上传被视为帖子。 (请注意,作者只能删除自己的帖子和附件。)

可以添加角色或功能,但您必须替换默认的媒体管理屏幕,其中删除操作由“delete_posts”上限控制。你不想搞乱核心文件upload.php等等。所以你必须限制对它们的访问,然后为作者编写你自己的面板。你可能不想这样做。 : - )

然而,有一种更好的方法。如果在保存时将上传分配给管理员,则作者将无法删除它们。您可以使用add_attachmentedit_attachment操作挂钩将post_author更改为管理员ID。

希望有所帮助。

答案 2 :(得分:0)

在functions.php文件中添加此代码:

add_action('media_row_actions','users_own_attachments', 2, 1);
function users_own_attachments( $wp_query_obj ) {
    if( !current_user_can( 'delete_plugins' ) ){
        unset($wp_query_obj['delete']);
        return $wp_query_obj;
    }
}