Spielereien mit WordPress 4.7 – eigene Bulk Actions definieren

WordPress 4.7 – Bulk Actions
2 Kommentare

WordPress 4.7 steht in den Startlöchern. Daher lohnt es sich bereits jetzt, ein bisschen damit zu experimentieren. In diesem Teil unserer WordPress-Themenwoche definieren wir eigene Bulk Actions

Besonders gefeiert und vielleicht bereits bekannt sind die Custom Bulk Actions. Nach Jahren ist es endlich möglich, ohne viel Aufwand eigene Bulk Actions für bereits bestehende Listen zu schreiben.

Bulk Actions definieren

Die Betonung liegt auf „bereits bestehende Listen“, da es grundsätzlich möglich war, über die WP_List_Table-Klasse eigene Bulk Actions definieren zu können. Jedoch galt das nicht für die mit WordPress oder Plug-ins mitgelieferten Listen (z. B. die Klasse WP_Posts_List_Table), bei denen mit bösem manipulierenden JavaScript neue Einträge generiert werden mussten. Das ist jetzt vorbei.

Dieser Artikel ist der erste von fünf in unserer WordPress-Themenwoche. In anderen Artikeln geht es um allgemeine Neuerungen & Proposals, Shortcodes, Theme-Vererbung und ein eigenes Event-System mit WP_Hook.

Ein Round-Trip mit Filtern, Funktionen und Erfolgsmeldung: Im Grunde ist es sehr leicht; alle Aktionen sind in einem ID => Label -Array gespeichert, das über den bulk_actions-edit-post-Filter erweitert werden kann:

add_filter( 'bulk_actions-edit-post', 'register_my_bulk_actions' );

function register_my_bulk_actions( $bulk_actions ) {
  $bulk_actions['export_multiple'] = __( 'Export', 'acme');
  return $bulk_actions;
}
WordPress 4.7: Bulk Actions

Eigene Bulk Actions seit WordPress 4.7

Actions im Dropdown

Anschließend können im Backend mehrere Einträge (Posts, Pages oder andere) markiert und im bekannten Drop-down (wie in der Abbildung zu sehen) der Punkt „Export“ ausgewählt werden. Es muss nur noch über den handle_bulk_actions-edit-post-Filter definiert werden, was getan werden soll:

add_filter(
  'handle_bulk_actions-edit-post',
  'my_bulk_action_handler',
  10,
  3
);

function my_bulk_action_handler( $redirect_to, $action, $post_ids ) {
  if ( $action !== 'export_multiple' ) {
    // Nicht unsere action gewählt => nichts weiter tun
    return $redirect_to;
  }

  foreach ( $post_ids as $post_id ) {
    // Hier kommt der Code für den Export hin.
  }

  // Anschließend zurück zur Liste mit Erfolgsmeldung
  $redirect_to = add_query_arg(
    'bulk_export_multiple',
    count( $post_ids ),
    $redirect_to
  );

  return $redirect_to;
}

Das war auch schon die ganze Magie. An dieser Stelle kann nicht nur ein Export per CSV stehen, sondern auch ganz andere Funktionen wie direktes Löschen, Duplizieren, Zusammenfassen zweier Artikel – was die Phantasie so hergibt. Das Einzige was noch fehlt, ist eine Statusmeldung an den Benutzer:

add_action( 'admin_notices', 'my_bulk_export_multiple_notice' );

function my_bulk_export_multiple_notice() {
  if ( empty( $_REQUEST['bulk_export_multiple'] ) ) {
    // scheinbar nicht in unserem Kontext => early exit
    return;
  }

  // inform the user how many have been exported
  $count = intval( $_REQUEST['bulk_export_multiple'] );
  printf(
    '<div id="message" class="updated fade">'
    . __( '%s exportiert.', 'acme' )
    . '</div>',
    $count
  );
}

WordPress Spezial

Entwickler Magazin Spezial Vol. 10: WordPress
Alles rund um WordPress im Entwickler Spezial Vol. 10 – ab 18.11.2016 im Handel.

Voilà! Was zuvor kompliziert mit JavaScript, regulären Ausdrücken oder über DOM Nodes gelöst werden musste, geht nun bequem über ein paar Filter. Ich bin gespannt, welche Plug-ins mit sinnvollen Bulk Actions für Seiten, Beiträge und Medien entstehen.

Sechs Jahre ist das Ticket um die Bulk Actions alt, und es ist bei Weitem nicht das älteste. Vor zwölf Jahren wurde gefordert, dass Passwörter am Beitrag mehr als zwanzig Zeichen haben dürfen, was heute erst gelöst ist. Alles sinnvolle Anfragen, deren Umsetzung gefeiert wurde. Von mir persönlich werden die folgenden etwas mehr gefeiert, da sie einem Entwickler und im Agenturalltag einiges vereinfachen.

Das war es auch schon mit dem zweiten Teil in unserer WordPress-Themenwoche. Morgen sehen wir uns an, wie man in WordPress 4.7 Shortcodes überschreiben kann.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

2 Kommentare auf "WordPress 4.7 – Bulk Actions"

avatar
400
  Subscribe  
Benachrichtige mich zu:
trackback

[…] Artikel ist der erste von fünf in unserer WordPress-Themenwoche. In anderen Artikeln geht es um Bulk Actions, Shortcodes, Theme-Vererbung und ein eigenes Event-System mit […]

trackback

[…] WordPress-Themenwoche. In anderen Artikeln geht es um allgemeine Neuerungen & Proposals, Bulk Actions, Shortcodes und die Theme-Vererbung in WordPRess […]

X
- Gib Deinen Standort ein -
- or -