确定是否在函数中执行了操作

时间:2015-01-14 作者:user1048676

我有以下代码:

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) 因此,我知道对象中有什么,并查看可以取消设置的操作。

1 个回复
最合适的回答,由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&amp;action=edit">Edit</a>
    [delete] => <a class=\'submitdelete\' onclick=\'return showNotice.warn();\' href=\'post.php?action=delete&amp;post=XX&amp;_wpnonce=XXXX\'>Delete Permanently</a>
    [view] => <a href="http://domain.com/?attachment_id=XX" title="View &#8220;Attachment Title&#8221;" rel="permalink">View</a>
)

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register