2

我试图在 Edit | 之外添加一个链接 通过插件删除wordpress管理员>用户>所有用户列表中的链接..这是我第一次尝试通过查看其他插件或搜索google来制作wordpress插件..

我添加了一个功能

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', 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 被写入 /wp-admin/ 并且它包含0

我想我在应用过滤器时犯了一些错误..

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

4

3 回答 3

4
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

于 2012-04-05T03:47:54.610 回答
1

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

我想查看您的代码的第一件事是是否$actions是关联数组。如果你改变它是否有效

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

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

?

如果可行,您可以考虑将其插入正确的位置,而不是附加。

仅出于测试目的,我也会注释掉该if语句,以消除权限作为错误的原因(即在添加太多其他逻辑之前尝试找出编辑/删除消失的原因)。

于 2012-04-04T20:55:01.257 回答
-1

我认为有最好的方法。您可以使用 add_action('user_row_actions','your_function_name') 自定义编辑和删除或添加新徽章。有关更多详细信息,您可以访问我找到最佳解决方案的网站。请参阅这篇文章 Add or edit custom link in wp users list in wordpress admin

希望对你有帮助。。

于 2014-05-28T09:48:09.010 回答