2012-04-04 2 views
2

Я пытаюсь добавить ссылку, кроме Edit | Удалить ссылки в WordPress Администратор> Пользователи> список всех пользователей через плагин .. это моя первая попытка сделать плагин WordPress, глядя на других плагинов или поиск Google ..Wordpress filter 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; 
} 

и применяется фильтр

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

Но что-то, кажется, идет не так, как эта ссылка не отображается и Edit | Удалите ссылки также исчезают (больше не в выходных данных 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-администратор/ и содержал -

Я думаю, что я делаю какую-то ошибку в применении фильтра ..

Update 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

+0

Нет, я очень новичок в написании плагинов, поэтому хотел сохранить его как можно проще ..Какая польза от наличия всего внутри класса в плагине wordpress? –

1

Если ссылки редактирования/удаления исчезают, это подразумевает, что ваша функция вызывается, но вызывает ошибку.

Первое, что мне интересно, глядя на ваш код, является ли ассоциативным массивом. Работает ли это, если вы измените

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

в

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

?

Если это работает, вы можете посмотреть, как вставить его в нужное положение, а не добавлять.

Для проверки целей я также прокомментировал заявление if, чтобы устранить разрешения как причину ошибки (т. Е. Попытаться выяснить, почему удаление/удаление исчезают, прежде чем добавлять слишком много другой логики).

+0

хорошо, дает ему попробовать прямо сейчас, спасибо за советы. –

-1

Я думаю, что есть лучший способ сделать это. Вы можете настроить Edit и Delete или Добавить новый значок с помощью add_action ('user_row_actions', 'your_function_name'). для получения более подробной информации вы можете посетить сайт, где я нашел лучший solution..See этого пост Add or edit custom link in wp users list in wordpress admin

Надеется, что это поможет ..

Смежные вопросы