禁用媒体库中的编辑选项

时间:2013-07-25 作者:Ghinnersmee

将鼠标悬停在文件名或缩略图上会显示编辑选项,我想知道是否有任何挂钩可以禁用多站点媒体库中的所有编辑链接enter image description here

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

您可以使用多个过滤器:

自定义列内容

如果您有一个使用“-”过滤器添加的自定义列,则可以使用

manage_{$post->post_type}_posts_custom_column
筛选以更改内容。如果您只想针对非层次结构的帖子类型,那么还有manage_posts_custom_column 对于层次结构,有manage_pages_custom_column. 所有三个过滤器都有两个参数:$column_name, $post->ID.

对于媒体库,有一个特殊的过滤器:manage_media_custom_column.

删除操作IIRC,有以下过滤器可以添加或删除不同的操作:

apply_filters( \'bulk_actions-\' . $this->screen->id, $this->_actions );
您应该能够从以下位置获取屏幕IDget_current_screen()->ID.

对于媒体库,这也是一种特殊情况,您必须使用

apply_filters( \'media_row_actions\', $actions, $post, $this->detached );
过滤器。

确保您不使用$this-> 在回调参数中,因为您不在对象上下文中。

删除图像链接到目前为止,无法完全删除<a href="" ... 不费吹灰之力就能完成标记。But 您可以(简单地)使用get_edit_post_link-滤器

只需将其重新定位为sprintf( \'#post-%s\', $post_id );:

add_filter( \'get_edit_post_link\', \'wpse107783_remove_media_icon_link\', 20, 2 );
function wpse107783_remove_media_icon_link( $url, $post_id )
{
    if ( \'upload\' !== get_current_screen()->id )
        return $url;

    return sprintf( \'#post-%s\', $post_id );
}
为什么不是CSS或JS

人们仍然可以通过他们的开发工具删除事件监听器或CSS规则,这可能是您不想要的。

重定向只能在服务器端根据角色和功能进行锁定。

add_action( \'template_redirect\', \'wpse107783_redirect_media_edit\' );
function wpse107783_redirect_media_edit()
{
    if (
        ! is_admin()
        OR \'attachment\' !== get_current_screen()->id
    )
        return;

    exit( wp_redirect( admin_url() ) );
}
注意:我不确定template_redirect 是这里的右钩子。也可能是这样admin_menuinit.

SO网友:Matt.C

向admin\\u head添加一些CSS以隐藏图像操作栏,并在单击图像后隐藏编辑按钮:

这应该可以做到:

function hide_image_edit_link() {
    echo "<style type=\\"text/css\\">
            table.media .row-actions {display:none;}
            .wp_attachment_image input[id^=\\"imgedit-open-btn\\"] {display:none;}
        </style>";
}
add_action(\'admin_head\', \'hide_image_edit_link\');

结束

相关推荐

Media Manager 3.5自定义选项

我需要更改这些值并隐藏一些默认的media manager附件显示设置。比如将“Link to”设置为none,并将其隐藏,以便注册用户无法更改它。如果我可以从下拉列表中删除“大小”选项“原始大小”,那也太好了。我在google上搜索了一下,对新的媒体管理器进行更改似乎很棘手,因此我目前还没有找到解决方案。。我希望你能帮我一些见解。非常感谢。