2012-04-04 68 views
2

我試圖添加除編輯|刪除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:回答我自己的問題。

回答

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

+0

啊 - 所以你的'add_filter'沒有被從類內部調用? – Hobo 2012-04-05 10:54:38

+0

不,我是非常新的插件寫作,所以想保持儘可能簡單..在wordpress插件的課堂中擁有所有內容的好處是什麼? – 2012-04-07 03:07:13

1

如果編輯/刪除鏈接正在消失,這意味着您的函數被調用,但會導致錯誤。

我不知道看你的代碼的第一件事是是否是一個關聯數組。請問,如果你改變

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

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

工作?

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

只是出於測試目的,我也會註釋掉if語句,以消除導致錯誤的權限(即,在添加太多其他邏輯之前,試着找出編輯/刪除爲什麼會消失)。

+0

好吧,我給它現在是一個嘗試,感謝提示的網站。 – 2012-04-05 02:00:32

-1

我認爲最好的辦法是做到這一點。您可以使用add_action('user_row_actions','your_function_name')自定義編輯和刪除或添加新徽章。瞭解更多詳情,您可以訪問,我發現最好的solution..See這個帖子Add or edit custom link in wp users list in wordpress admin

希望它會幫助你..