WordPress的过滤器user_row_actions

问题描述:

我试图添加除编辑|删除WordPress管理链接>用户>所有用户列出通过插件..这是WordPress的过滤器user_row_actions

我添加了一个功能

function pa_user_list_pay_link($actions, $user_object) { 
    if (current_user_can('administrator', $user_object->ID)) 
     $actions['pay'] = '<a href="#">Pay</a>'; 
    return $actions; 
} 
在通过观察其他插件或搜索谷歌制作的WordPress插件我第一次尝试..

和应用的过滤

add_filter('user_row_actions', array($this, 'pa_user_list_pay_link'), 10, 2); 

但有些事情似乎去错了,因为这个环节没有出现在编辑|删除链接也消失了(不再在HTML输出)

更新1: 我修改/wp-admin/includes/class-wp-users-list-table.php

此行之后

$actions = apply_filters('user_row_actions', $actions, $user_object); 

我加入这个

file_put_contents("test_output.txt" , count($actions)); 

的test_output.txt被写入/可湿性粉剂管理员/ ,它包含

我觉得我做了一些错误,在应用过滤器..

更新2:回答我自己的问题。

function pa_user_list_pay_link($actions, $user_object) { 
    if (current_user_can('administrator', $user_object->ID)) 
     $actions['pay'] = '<a href="#">Pay</a>'; 
    return $actions; 
} 

add_filter('user_row_actions', 'pa_user_list_pay_link', 10, 2); 

工程! :D

+0

啊 - 所以你的'add_filter'没有被从类内部调用? – Hobo 2012-04-05 10:54:38

+0

不,我是非常新的插件写作,所以想保持尽可能简单..在wordpress插件的课堂中拥有所有内容的好处是什么? – 2012-04-07 03:07:13

如果编辑/删除链接正在消失,这意味着您的函数被调用,但会导致错误。

我不知道看你的代码的第一件事是是否是一个关联数组。请问,如果你改变

$actions['pay'] = '<a href="#">Pay</a>'; 

$actions[] = '<a href="#">Pay</a>'; 

工作?

如果有效,您可以将它插入正确的位置,而不是追加。

只是出于测试目的,我也会注释掉if语句,以消除导致错误的权限(即,在添加太多其他逻辑之前,试着找出编辑/删除为什么会消失)。

+0

好吧,我给它现在是一个尝试,感谢提示的网站。 – 2012-04-05 02:00:32

我认为最好的办法是做到这一点。您可以使用add_action('user_row_actions','your_function_name')自定义编辑和删除或添加新徽章。了解更多详情,您可以访问,我发现最好的solution..See这个帖子Add or edit custom link in wp users list in wordpress admin

希望它会帮助你..