我有以下代码:
add_filter(\'media_row_actions\',\'delete_link\', 2, 1);
function delete_link( $wp_query_obj ) {
echo "it is in this one";
//if( !current_user_can( \'delete_plugins\' ) ){
unset($wp_query_obj[\'delete\']);
return $wp_query_obj;
//}
}
我试图确定钩子是否真的执行了,所以我打印了一个回音,看看是否返回了一些文本。我没有看到文本,所以我认为它没有被执行,但我不确定。如果我在以下URL查看该函数的trac:
https://core.trac.wordpress.org/browser/tags/4.1/src/wp-admin/includes/class-wp-media-list-table.php#L551
挂钩是:
$actions = apply_filters( \'media_row_actions\', $actions, $post, $this->detached );
我还试着把钩子做成:
add_action(\'media_row_actions\',\'delete_link\', 2, 1);
我做这件事的时候还是没有看到回声。我只是显示媒体页面并单击图像以显示附件详细信息。我想最终做一个
print_r($wp_query_obj)
因此,我知道对象中有什么,并查看可以取消设置的操作。
最合适的回答,由SO网友:darrinb 整理而成
media_row_actions
仅过滤媒体库中的链接(/wp admin/upload.php?mode=list)
和$wp_query_obj
真的应该是$actions
, 因为这就是被过滤的内容。
对象中包含一组动作键和相应的动作链接:
(
[edit] => <a href="http://domain.com/wp-admin/post.php?post=XX&action=edit">Edit</a>
[delete] => <a class=\'submitdelete\' onclick=\'return showNotice.warn();\' href=\'post.php?action=delete&post=XX&_wpnonce=XXXX\'>Delete Permanently</a>
[view] => <a href="http://domain.com/?attachment_id=XX" title="View “Attachment Title”" rel="permalink">View</a>
)