Manage Plugins: Links zu WordPress-Plugins hinzufügen

Heute mal ein kurzer Artikel, der sich vor allem an Entwickler richtet, die sich unter anderem mit der Programmierung von WordPress-Plugins beschäftigen.

Ich hatte heute etwas zu erledigen, dass ich gerne teilen möchte, weil es durchaus die Usability (oder aber wenigstens den Komfort für Kunden) erhöht, wenn man beispielsweise Links zur Konfiguration eines Plugins auch gleich direkt mit in den Bereich integriert, wo eben gerade die Aktivierung stattfand.

Manage Plugins

Wie üblich kann auch für diesen Zweck wieder ein Filter erstellt werden, der bei einem bestimmten Hook die Ergebnismenge weiterverarbeitet. Für die Verlinkung direkt unter dem Namen des Plugins gibt es sogar zwei mögliche Hooks:

  • plugin_action_links
  • network_admin_plugin_action_links

Letzterer steht zur Verfügung, wenn man sich bei einer Multiste im Plugin-Bereich des Superadmins befindet. Die Unterscheidung ist nützlich, wenn man beispielsweise bei einem Plugin, die Aktivierung für das gesamte Netzwerk verhindern möchte. Ansonsten ist die Position – nach meinem Empfinden – sehr für einen Link zur Konfiguration eines Plugins geeignet.


<?php
define( 'PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
function my_plugin_action_links( $actions, $plugin_file, $plugin_data, $context ) {
if ( PLUGIN_BASENAME == $plugin_file )
$actions[] = '<a href="#">Test: plugin_action_links</a>';
return $actions;
}
add_filter( 'plugin_action_links', 'my_plugin_action_links', 10, 4 );
add_filter( 'network_admin_plugin_action_links', 'my_plugin_action_links', 10, 4 );

view raw

gistfile1.php

hosted with ❤ by GitHub

Die Verlinkung unter der Beschreibung eines Plugins lässt sich ebenfalls steuern. Hierfür kann der Hook

  • plugin_row_meta

angesprochen werden. Rein vom Gefühl her, würde ich an dieser Position keinen Link zum Setup (oder ähnlichen wichtigen Bereichen) unterbringen. Für einen Spendenhinweis und einem Link zur entsprechenden Seite, halte ich diesen Platz aber in jedem Fall geeignet.


<?php
define( 'PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
function my_plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
if ( PLUGIN_BASENAME == $plugin_file )
$plugin_meta[] = '<a href="#">Test: plugin_row_meta</a>';
return $plugin_meta;
}
add_filter( 'plugin_row_meta', 'my_plugin_row_meta', 10, 4 );

view raw

gistfile1.php

hosted with ❤ by GitHub

Man ist hier übrigens nicht nur auf das eigene Plugin beschränkt, sondern arbeitet auf der ganzen Liste, weshalb in die Filterfunktionen eine if-Abfrage eingebaut wurde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert