2012-04-04 9 views
2

Ich versuche, einen Link neben dem Bearbeiten | hinzuzufügen Löschen Links in Wordpress Admin> Benutzer> alle Benutzer Liste durch ein Plugin .. das ist mein erster Versuch, ein Wordpress-Plugin machen in anderen Plugins suchen oder Google-Suche ..Wordpress Filter user_row_actions

ich eine Funktion

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; 
} 
hinzugefügt haben

und die angewandte Filter

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

Aber etwas scheint falsch zu gehen, da dieser Link nicht erscheint und das Bearbeiten | Löschen Links verschwinden auch (nicht mehr in der HTML-Ausgabe)

UPDATE 1: I /wp-admin/includes/class-wp-users-list-table.php

Nach dieser Linie

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

ich habe diese

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

die test_output.txt zu/wp-admin/ wurde geschrieben und enthielt

Ich glaube, ich bei der Anwendung des Filters einige Fehler mache ..

Update 2: meine eigene Frage beantwortet.

Antwort

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); 

Funktioniert! : D

+0

Ah - also wurde Ihr 'add_filter' nicht innerhalb einer Klasse aufgerufen? – Hobo

+0

Nein, ich bin sehr neu beim Plugin-Schreiben und wollte es so einfach wie möglich halten.Was ist der Vorteil, alles in einer Klasse in einem Wordpress-Plugin zu haben? –

1

Wenn die Links zum Bearbeiten/Löschen verschwinden, würde dies bedeuten, dass Ihre Funktion aufgerufen wird, aber einen Fehler verursacht.

Das erste Ding, das ich mich frage, Ihren Code zu betrachten, ist, ob ein assoziatives Array ist. Funktioniert es, wenn Sie

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

zu

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

?

Wenn das funktioniert, können Sie es in die richtige Position einfügen, anstatt anzuhängen.

Nur zu Testzwecken würde ich die if Anweisung auch auskommentieren, um Berechtigungen als Ursache des Fehlers zu eliminieren (d. H., Versuchen herauszufinden, warum Edit/Delete verschwinden, bevor Sie zu viele andere Logik hinzufügen).

+0

ok, es fand ein versuchen nun, danke für die Tipps gebe. –

-1

Ich denke, es gibt den besten Weg, es zu tun. Sie können Bearbeiten und Löschen oder Hinzufügen neuer Abzeichen mit add_action ('user_row_actions', 'your_function_name') anpassen. Für weitere Informationen können Sie die Website besuchen, wo ich diesen Beitrag die besten solution..See Add or edit custom link in wp users list in wordpress admin

Hoffe, dass es Ihnen helfen ..

Verwandte Themen