✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Tutorial: come aggiungere un’azione collettiva personalizzata nell’amministratore di WordPress

8

Sopra la maggior parte delle tabelle di elementi nell’amministratore di WordPress (ad esempio post, pagine, commenti, plug-in e utenti) troverai la funzionalità di WordPress per le azioni collettive. Le azioni in blocco ti consentono di selezionare più elementi, scegliere un’azione e fare in modo che quell’azione venga eseguita per tutti gli elementi contemporaneamente. In questo post vedremo come aggiungere le nostre azioni in blocco personalizzate all’amministratore di WordPress.

L’aggiunta di un’azione in blocco personalizzata è diventata molto più semplice nelle versioni recenti di WordPress (dalla 4.7). C’è un filtro per le opzioni disponibili nel menu a discesa; un altro filtro per ciò che dovrebbe fare quando viene scelta l’opzione e un altro hook per mostrare facoltativamente un avviso di amministratore. Esaminiamo ciascuno di questi.

Aggiunta di un’azione collettiva personalizzata nel menu a discesa

Iniziamo con l’aggiunta della nostra scelta collettiva personalizzata al menu a discesa delle azioni in blocco. Per questo utilizziamo il filtro bulk_actions_<screen>, in cui lo sostituisci con qualsiasi schermata di amministrazione a cui desideri aggiungere la tua opzione. Ecco una panoramica completa delle possibili opzioni per lo schermo:

  • bulk_actions-edit-post: Schermata di modifica ‘post’ del tipo di post
  • bulk_actions-edit-page: Schermata di modifica della "pagina" del tipo di post
  • bulk_actions-edit-<post-type-name>: Schermata di modifica del tipo di post personalizzato
  • bulk_actions-edit-<custom-taxonomy>: Schermata di modifica della tassonomia personalizzata
  • bulk_actions-edit-comments: Schermata dell’elenco dei commenti
  • bulk_actions-plugins: schermata dell’elenco dei plugin
  • bulk_actions-users: schermata dell’elenco utenti
  • bulk_actions-upload: Elenco della libreria multimediale (funziona solo nella visualizzazione elenco, non nella visualizzazione griglia)

Il filtro viene applicato a un array con coppie chiave-valore; dove le chiavi sono una chiave univoca per le azioni e i valori sono l’etichetta che appare nel menu a discesa.

Diamo un’occhiata a un esempio. Voglio creare un’azione collettiva per impostare i post da pubblicare.

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

Se salvi e aggiorni la schermata di modifica dei post, dovresti vedere la tua opzione nel menu a discesa.

Tutorial: come aggiungere un'azione collettiva personalizzata nell'amministratore di WordPress

A partire da ora la nostra azione in blocco personalizzata sta facendo assolutamente zip. Questo è il prossimo passo.

Fare in modo che la nostra azione collettiva personalizzata faccia qualcosa

Per attivare qualcosa quando scegliamo la nostra nuova opzione aggiunta nel dropwon, ci colleghiamo al filtro handle_bulk_actions-<screen>. Fare riferimento alla panoramica sopra per i possibili valori dello schermo. Ovviamente il tuo handle hook dovrebbe essere la stessa schermata in cui hai aggiunto l’azione in blocco nel primo passaggio.

Hai tre possibili argomenti in questo filtro. Il primo, quello che restituisci, è in realtà un URL a cui WordPress dovrebbe reindirizzare al termine dell’azione collettiva. Il secondo argomento è il nome dell’azione che è stata scelta nel menu a discesa. E il terzo è un array di tutti gli ID elemento che sono stati controllati per l’azione in blocco. Questi sono gli elementi su cui dobbiamo applicare la nostra azione.

Diamo un’occhiata a cosa fa il codice sopra passo dopo passo. Per prima cosa dobbiamo verificare se l’azione in blocco eseguita è stata effettivamente la nostra azione personalizzata; change-to-published. E poi sta a noi fare quello che vogliamo con tutti gli ID.

Il codice sopra scorre tutti gli ID post e funziona wp_update_post()su ciascuno per modificare lo stato del post in pubblicato. (Se vuoi che questo sia efficiente potresti prendere in considerazione l’aggiornamento solo di quelli che in effetti non sono già stati pubblicati).

Dopo aver terminato di eseguire la nostra azione sugli elementi selezionati, dobbiamo creare un URL a cui reindirizzare al termine di WordPress. Aggiungiamo un argomento personalizzato all’URL di reindirizzamento fornito. Questo è facoltativo ma necessario se vogliamo mostrare un avviso di amministratore. Possiamo aggiungere tutto quello che vuoi. Ma nell’esempio sopra stiamo semplicemente aggiungendo una nuova query arg con add_query_arg()l’impostazione ‘ changed-to-published‘ al numero di ID post interessati. Questa è un’informazione utile per un avviso.

Mostra un avviso al termine della nostra azione collettiva personalizzata

Se esegui ora la nostra azione in blocco personalizzata, noterai che dopo che WordPress ha completato l’azione in blocco, ricarica la pagina con quanto segue nell’URL: "wp-admin/edit.php?changed-to-published=2". "2" è il numero di post su cui abbiamo applicato la nostra azione. Ciò ci consente di aggiungere un avviso dell’amministratore personalizzato che si attiva se è impostato "modificato in pubblicato".

Per mostrare gli avvisi dell’amministratore, possiamo utilizzare l’azione admin_notices. Controlliamo la variabile globale di PHP, $_REQUEST, che è popolata con i valori inviati dal modulo se ‘ changed-to-published‘ esiste. In tal caso, significa che la nostra azione collettiva personalizzata è stata appena eseguita. Visualizzeremo quindi del testo incluso il numero di post applicati.

E questo è tutto!

Tutorial: come aggiungere un'azione collettiva personalizzata nell'amministratore di WordPress

Altri usi dell’azione collettiva personalizzata

Tieni presente che nel handle_bulk_actions-<screen>gancio puoi fare praticamente tutto ciò che vuoi sugli elementi selezionati. Puoi aggiornare il meta post personalizzato, modificare i ruoli sugli utenti, inviare un’e-mail o pubblicare una richiesta HTTP su qualche app di terze parti.

Per esempio; se desideri un’azione in blocco per aggiornare un meta post personalizzato che informa se i post sono verificati o meno, utilizzando un’azione in blocco personalizzata con la chiave ‘ 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);

Combina quanto sopra con una colonna personalizzata che mostra il valore di "verificato" negli elenchi di post, come abbiamo fatto in questo post, e diventa molto utile.

Tutorial: come aggiungere un'azione collettiva personalizzata nell'amministratore di WordPress

Fonte di registrazione: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More