Personalizzazione delle tabelle di amministrazione di WordPress: modifiche avanzate

Pubblicato: 2021-01-26

Nel nostro primo articolo della nostra serie sulla personalizzazione delle tabelle di amministrazione di WordPress, abbiamo esaminato come applicare alcune configurazioni di base alle schermate di amministrazione dei nostri tipi di post, inclusa l'aggiunta di una colonna personalizzata e renderla ordinabile.

Oggi faremo un ulteriore passo avanti e esamineremo alcune modifiche aggiuntive che possono essere applicate alla tabella di amministrazione dell'elenco dei post. Muoviamoci!

Miglioramento della tabella dei post di amministrazione di WordPress

Fornire informazioni aggiuntive nella schermata della tabella di amministrazione per gli utenti back-end migliorerà sicuramente la loro esperienza di flusso di lavoro. In questo tutorial mireremo a migliorare i dati visualizzati nella nostra tabella post amministratore aggiungendo informazioni, modificando il contenuto esistente, riordinando le colonne e persino rimuovendo le colonne della tabella non necessarie.

Visualizza le immagini in primo piano

Sarebbe davvero utile aggiungere una miniatura in primo piano all'elenco dei post della tua tabella di amministrazione. Ciò accelererebbe davvero la capacità di vedere se un post ha l'immagine sbagliata (o forse non ha affatto un'immagine) senza dover aprire ogni singolo post.

Per ottenere ciò creeremo una colonna di immagini in primo piano per la pagina del nostro post di modifica e la compileremo con una miniatura dell'immagine. Come mostrato nel nostro articolo precedente, utilizzeremo manage_posts_columns . Se non hai ancora letto questo articolo, fallo in quanto include parte del codice richiesto per questo tutorial.

Se hai letto l'articolo e lo hai seguito, dovresti avere il seguente codice nel file functions.php del tuo tema attivo. In caso contrario, aggiungilo!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

Per mostrare l'immagine in primo piano nella nostra tabella di amministrazione, dobbiamo modificare questo codice come segue:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

I numeri, 10 e 2 nel terzo e quarto argomento, determinano la priorità in cui verranno elaborate le funzioni associate a questa azione. Questi argomenti verranno passati alla nostra funzione custom_columns_content .

Il valore predefinito per la priorità è 10. Il numero 2 mostra la quantità degli argomenti della funzione. Quindi nel nostro caso è importante includere questi numeri poiché abbiamo 2 argomenti, vale a dire $column_id e $post_id .

Ora, con questo codice salvato, vediamo cosa abbiamo nella schermata dei nostri post di amministrazione.

Immagini in evidenza della tabella di amministrazione di WordPress

Come puoi vedere ora abbiamo una colonna "Ultima modifica" e la nostra nuova colonna "Pollici".

Modifica le etichette delle colonne

Supponendo di voler per qualche motivo modificare l'etichetta di una colonna, ad esempio, rinominare la colonna "Autore" in "Scrittore". Per fare ciò possiamo semplicemente definire la nuova etichetta nello stesso modo in cui abbiamo aggiunto la nostra colonna personalizzata. Ancora una volta, per mantenere il nostro codice più distintivo, separeremo i frammenti di codice di ridenominazione utilizzando una funzione diversa.

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

Ovviamente puoi cambiare l'etichetta di più colonne nello stesso snippet di codice semplicemente aggiungendo $columns['COLUMN_ID'] = 'NEW_LABEL'; subito prima return $columns;

Migliora la tabella delle pagine di amministrazione di WordPress

Potresti non esserne consapevole, ma le pagine di WordPress sono un tipo di post gerarchico, il che significa che ogni pagina potrebbe avere una pagina padre.

Potrebbe essere davvero utile vedere a colpo d'occhio quale pagina è la pagina principale di qualsiasi pagina figlia. Diamo un'occhiata a come farlo.

Aggiungi una colonna personalizzata che visualizzi il post principale

Innanzitutto, ho creato alcune pagine padre e figlio con alcune immagini in primo piano associate.

Post padre e figlio della tabella di amministrazione di WordPress

Successivamente, inseriremo del codice nel nostro file functions.php . Seguiremo lo stesso processo che abbiamo fatto con il tipo di Post per quanto riguarda l'aggiunta di quella che chiameremo la colonna "Antenato".

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

Lo stesso vale per posizionare la colonna nella posizione desiderata nella tabella. Riordineremo le colonne della tabella in modo che la colonna "Antenato" venga prima della colonna Autore.

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

A questo punto, nella schermata di amministrazione di Pages dovresti vedere qualcosa del genere:

L'ultima cosa che dobbiamo fare è riempire la colonna "Antenato" con il contenuto giusto. Poiché questa volta stiamo lavorando con un tipo di post gerarchico, utilizzeremo un hook diverso per ottenere il contenuto della colonna. Prova a inserire questo pezzo di codice e controlla il risultato.

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

Ora dovresti vedere la pagina padre associata accanto alle pagine figlio elencate nella colonna "Antenato".

Ciò è particolarmente utile se e quando l'ordine delle tue pagine nella tabella di amministrazione viene interrotto (ad esempio perché sono ordinate per data di pubblicazione ecc.) e quindi le pagine figlie non vengono più visualizzate ordinatamente sotto le rispettive pagine principali.

Modifica delle colonne di default

Ci sono diverse cose che possono essere fatte per migliorare le colonne della tabella di amministrazione predefinite. Diamo un'occhiata ad alcuni di questi.

Riordinare le colonne

Nel nostro precedente articolo sulla personalizzazione delle tabelle di amministrazione, abbiamo aggiunto una nuova colonna che mostra la data dell'ultima modifica del post. Ma cosa succede se vogliamo cambiarne la posizione nell'ordine delle colonne?

Questo fortunatamente è abbastanza facile e può essere implementato usando l'hook manage_posts_columns .

Ciò che deve essere definito è la colonna che deve essere spostata e la colonna immediatamente prima di dove vogliamo posizionare la nostra colonna. Quindi, se, ad esempio, vogliamo che l'immagine della caratteristica sia una prima colonna della tabella, dovremo spostarla prima della colonna del titolo. Il codice pezzo corrispondente dovrebbe essere questo:

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

E voilà!

aggiungi immagini in primo piano alle tue tabelle di amministrazione di WordPress

Rimozione di una colonna

Occasionalmente alcune colonne della tabella dell'elenco dei post non sono in realtà particolarmente utili e sarebbe meglio se venissero rimosse per liberare spazio. Un candidato comune per questo è la colonna dei commenti.

Fortunatamente è molto facile rimuovere una colonna dalla nostra tabella. Non ci resta che aggiungere unset($columns['comments']); nella funzione di hook manage_posts_columns . Anche se questo potrebbe essere aggiunto al nostro codice esistente, è più ordinato se possiamo separarlo nel suo frammento di codice poiché ha uno scopo diverso e introduce una nuova funzione nell'hook.

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

E questo è tutto. Aggiorna la schermata di amministrazione e dovresti vedere che la colonna Commenti è scomparsa.

Nota: se non sei sicuro di quale sia l'ID di una colonna, puoi rilevarlo utilizzando la console di ispezione del tuo browser.

Il plug-in per le colonne di amministrazione

Se non vuoi modificare il codice delle tue tabelle di amministrazione di WordPress, non temere... poiché si tratta di WordPress, c'è un plug-in che ti consentirà di apportare una serie di aggiornamenti senza dover toccare una riga di codice. Si chiama Colonne di amministrazione.

Nota: prima di procedere con l'installazione/attivazione del plug-in è meglio ripristinare tutte le personalizzazioni sulla tabella dell'elenco dei post (se ne hai fatte) e iniziare a utilizzare il plug-in con la tabella dei post di amministrazione allo stato iniziale.

Una volta scaricato e installato il plug-in, vai alla voce di menu Impostazioni > Colonne di amministrazione. Da qui puoi selezionare la tabella dell'elenco dei post (o qualsiasi altro tipo di post in cui desideri la possibilità di modificare la sua tabella di amministrazione) dall'elenco a discesa. Ti verrà quindi mostrata la struttura della tabella corrente.

Ora, usando un'interfaccia drag-and-drop puoi facilmente riordinare le colonne. È inoltre possibile modificare l'etichetta del tipo e la larghezza utilizzando l'icona della freccia per visualizzarne la configurazione.

E, sì, puoi persino aggiungere le tue colonne usando il pulsante "Aggiungi colonna" in basso a destra!

Ciò che il plug-in in realtà fa qui è raccogliere tutte le opzioni disponibili dalle tabelle del database relative al tipo di post e fornisce queste nel menu a discesa Tipo. Quindi, se ad esempio vuoi aggiungere una colonna "Ultima modifica" come abbiamo fatto prima, trovala e selezionala nell'elenco Tipo, quindi assegnale l'etichetta e la larghezza desiderata.

Successivamente, puoi modificare le opzioni Formato data che appariranno se lo desideri.

Conclusione

Avere le informazioni giuste sulle tabelle di amministrazione di WordPress può davvero accelerare il flusso di lavoro e aiutare a prevenire errori sul tuo sito web. Ad esempio, è molto meno probabile che pubblichi un post consapevolmente senza un'immagine in primo piano quando puoi vedere tutti i tuoi post e le immagini in primo piano associate a colpo d'occhio nella tabella Post Admin. Divertiti e imposta le tue tabelle di amministrazione in base alle tue esigenze e al tuo flusso di lavoro.