Custom bulk actions in WordPress 4.7

Ookal is WordPress 4.7 nog niet officieel uit, toch kunnen we al enkele nieuwe features testen.

Zoals de mogelijkheid om je eigenlijk bulk actions toe te voegen aan lijsten.

custom-bulk-action-screenshot

Een optie toevoegen in de dropdown

Om een optie in de Bulkacties dropdown HTML-element toe te voegen, schrijven we een callback op de bulk_actions- {} screen_id filter dat de nieuwe optie in de array toevoegt. Vervang {screen_id} met de ID van het admin scherm om de bulk actie bieden.

Om een bulk actie toe te voegen “E-mail naar Eric,” kunnen we de volgende code gebruiken:


add_filter( 'bulk_actions-edit-post', 'register_my_bulk_actions' );
function register_my_bulk_actions($bulk_actions) {
$bulk_actions['email_to_eric'] = __( 'Email to Eric', 'email_to_eric');
return $bulk_actions;
}

Het formulier inzenden

Om een bulkactie formulier indienen te behandelen, registreren we een callback op de handle_bulk_actions- {} screen_id filter voor het bijbehorende scherm. De filter verwacht dat de redirect URL te wijzigen, dus zorg ervoor dat de voorbije $ REDIRECT_URL wijzigen. Dit laat ons toe om het succes of falen toestand voeren naar de volgende aanvraag om een bericht aan de gebruiker weer te geven. De andere callback argumenten zal verschillen afhankelijk van het scherm om hier contextueel relevante gegevens op te nemen.

Om een bulk actie handler toe te voegen voor e-mailen van de geselecteerde berichten, kunnen we de volgende code gebruiken:


add_filter( 'handle_bulk_actions-edit-post', 'my_bulk_action_handler', 10, 3 );
function my_bulk_action_handler( $redirect_to, $doaction, $post_ids ) {
if ( $doaction !== 'email_to_eric' ) {
return $redirect_to;
}
foreach ( $post_ids as $post_id ) {
// Perform action for each post.
}
$redirect_to = add_query_arg( 'bulk_emailed_posts', count( $post_ids ), $redirect_to );
return $redirect_to;
}

Een vrijblijvende offerte

Offerteaanvraag, nieuwsgierig of gewoon zin om eens te komen babbelen bij een heerlijk kopje koffie? Contacteer ons voor een vrijblijvende afspraak.

Vrijblijvende offerte