✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Tutorial: So fügen Sie eine benutzerdefinierte Massenaktion in WordPress Admin hinzu

2

Über den meisten Elementtabellen im WordPress-Adminbereich (z. B. Beiträge, Seiten, Kommentare, Plugins und Benutzer) finden Sie die WordPress-Funktionalität für Massenaktionen. Mit Massenaktionen können Sie mehrere Elemente abhaken, eine Aktion auswählen und diese Aktion für alle Elemente gleichzeitig ausführen lassen. In diesem Beitrag sehen wir uns an, wie Sie unsere eigenen benutzerdefinierten Massenaktionen zum WordPress-Admin hinzufügen können.

Das Hinzufügen einer benutzerdefinierten Massenaktion ist in den letzten Versionen von WordPress (seit 4.7) viel einfacher geworden. Es gibt einen Filter für die verfügbaren Optionen in der Dropdown-Liste; ein weiterer Filter dafür, was es tun soll, wenn Ihre Option ausgewählt wird, und ein weiterer Haken zum optionalen Anzeigen einer Admin-Benachrichtigung. Lassen Sie uns jeden von diesen durchgehen.

Hinzufügen einer benutzerdefinierten Massenaktion in der Dropdown-Liste

Beginnen wir mit dem Hinzufügen unserer benutzerdefinierten Massenauswahl zum Dropdown-Menü Massenaktion. Dazu verwenden wir den Filter bulk_actions_<screen>, bei dem Sie durch den Admin-Bildschirm ersetzen, zu dem Ihre Option hinzugefügt werden soll. Hier ist eine vollständige Übersicht der möglichen Optionen für den Bildschirm:

  • bulk_actions-edit-post: Beitragstyp „Beitrag”-Bearbeitungsbildschirm
  • bulk_actions-edit-page: Bearbeitungsbildschirm für den Beitragstyp „Seite”.
  • bulk_actions-edit-<post-type-name>: Bearbeitungsbildschirm für benutzerdefinierte Beitragstypen
  • bulk_actions-edit-<custom-taxonomy>: Bearbeitungsbildschirm für benutzerdefinierte Taxonomie
  • bulk_actions-edit-comments: Kommentarlistenbildschirm
  • bulk_actions-plugins: Plugin-Listenbildschirm
  • bulk_actions-users: Benutzerlistenbildschirm
  • bulk_actions-upload: Medienbibliotheksliste (funktioniert nur in der Listenansicht, nicht in der Rasteransicht)

Der Filter wird auf ein Array mit Schlüssel-Wert-Paaren angewendet; Dabei sind Schlüssel ein eindeutiger Schlüssel für Aktionen und Werte die Bezeichnung, die in der Dropdown-Liste angezeigt wird.

Schauen wir uns ein Beispiel an. Ich möchte eine Massenaktion erstellen, um Posts auf veröffentlicht zu setzen.

add_filter('bulk_actions-edit-post', function($bulk_actions) { $bulk_actions['change-to-published'] = __('Change to published', 'txtdomain'); return $bulk_actions; });

Wenn Sie den Bearbeitungsbildschirm für Beiträge speichern und aktualisieren, sollten Sie Ihre Option in der Dropdown-Liste sehen.

Tutorial: So fügen Sie eine benutzerdefinierte Massenaktion in WordPress Admin hinzu

Ab sofort läuft unsere benutzerdefinierte Massenaktion absolut zip. Das ist der nächste Schritt.

Damit unsere benutzerdefinierte Massenaktion etwas bewirkt

Um bei der Auswahl unserer neu hinzugefügten Option im Dropwon etwas auszulösen, hängen wir uns an den Filter handle_bulk_actions-<screen>. Mögliche Rasterwerte entnehmen Sie bitte der obigen Übersicht. Offensichtlich sollte Ihr Handle-Hook derselbe Bildschirm sein wie der Bildschirm, in dem Sie die Massenaktion im ersten Schritt hinzugefügt haben.

Sie haben drei mögliche Argumente in diesem Filter. Die erste – die, die Sie zurückgeben – ist eigentlich eine URL, zu der WordPress umleiten sollte, nachdem es mit Ihrer Massenaktion fertig ist. Das zweite Argument ist der Name der Aktion, die in der Dropdown-Liste ausgewählt wurde. Und drittens ist ein Array aller Element-IDs, die für die Massenaktion überprüft wurden. Dies sind die Elemente, auf die wir unsere Maßnahmen anwenden müssen.

Schauen wir uns Schritt für Schritt an, was der obige Code tut. Zuerst müssen wir überprüfen, ob die durchgeführte Massenaktion tatsächlich unsere benutzerdefinierte Aktion war; change-to-published. Und dann liegt es an uns, mit all den Ausweisen zu machen, was wir wollen.

Der obige Code durchläuft alle Beitrags-IDs und führt wp_update_post()sie aus, um deren Beitragsstatus in „Veröffentlicht” zu ändern. (Wenn Sie möchten, dass dies effizient ist, sollten Sie in Betracht ziehen, nur diejenigen zu aktualisieren, die tatsächlich noch nicht veröffentlicht wurden).

Nachdem wir unsere Aktion für die ausgewählten Elemente ausgeführt haben, müssen wir eine URL erstellen, auf die umgeleitet wird, nachdem WordPress fertig ist. Wir fügen der bereitgestellten Umleitungs-URL ein benutzerdefiniertes Argument hinzu. Dies ist optional, aber notwendig, wenn wir einen Administratorhinweis anzeigen möchten. Wir können alles hinzufügen, was Sie wollen. Aber im obigen Beispiel fügen wir einfach ein neues Abfrageargument mit add_query_arg()der Einstellung „ changed-to-published” auf die Anzahl der betroffenen Beitrags-IDs hinzu. Dies sind nützliche Informationen für eine Benachrichtigung.

Eine Benachrichtigung anzeigen, nachdem unsere benutzerdefinierte Massenaktion abgeschlossen ist

Wenn Sie jetzt unsere benutzerdefinierte Massenaktion ausführen, werden Sie feststellen, dass WordPress die Seite nach Abschluss der Massenaktion mit folgendem Inhalt in der URL neu lädt: „wp-admin/edit.php?changed-to-published=2″. „2" ist die Anzahl der Posts, auf die wir unsere Aktion angewendet haben. Dies ermöglicht uns, einen benutzerdefinierten Admin-Hinweis hinzuzufügen, der ausgelöst wird, wenn „geändert zu veröffentlicht” eingestellt ist.

Um Admin-Benachrichtigungen anzuzeigen, können wir die Aktion verwenden admin_notices. Wir prüfen die globale PHP-Variable, $_REQUESTdie mit vom Formular gesendeten Werten gefüllt wird, wenn „ changed-to-published” existiert. Wenn dies der Fall ist, bedeutet dies, dass unsere benutzerdefinierte Massenaktion gerade ausgeführt wurde. Wir werden dann einen Text anzeigen, der die Anzahl der beworbenen Beiträge enthält.

Und das ist es!

Tutorial: So fügen Sie eine benutzerdefinierte Massenaktion in WordPress Admin hinzu

Andere Verwendungen von benutzerdefinierten Massenaktionen

Denken Sie daran, dass Sie im handle_bulk_actions-<screen>Hook grundsätzlich alles tun können, was Sie mit den ausgewählten Elementen tun möchten. Sie können benutzerdefinierte Post-Metadaten aktualisieren, Rollen für Benutzer ändern, eine E-Mail senden oder eine HTTP-Anforderung an eine Drittanbieter-App senden.

Zum Beispiel; Wenn Sie möchten, dass eine Massenaktion ein benutzerdefiniertes Post-Meta aktualisiert, das darüber informiert, ob Beiträge verifiziert sind oder nicht, verwenden Sie eine benutzerdefinierte Massenaktion mit dem Schlüssel „ mark-as-verified“:

add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) { if ($action == 'mark-as-verified') { foreach ($post_ids as $post_id) { update_post_meta($post_id, 'verified', '1'); } $redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url); } return $redirect_url; }, 10, 3);

Kombinieren Sie das Obige mit einer benutzerdefinierten Spalte, die den Wert „verifiziert” in Postlisten anzeigt – wie wir es in diesem Post getan haben, und es wird besonders nützlich.

Tutorial: So fügen Sie eine benutzerdefinierte Massenaktion in WordPress Admin hinzu

Aufnahmequelle: awhitepixel.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen