您可以使用多个过滤器:
自定义列内容
如果您有一个使用“-”过滤器添加的自定义列,则可以使用
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 );
您应该能够从以下位置获取屏幕ID
get_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_menu
或
init
.