Personalizarea tabelelor de administrare WordPress: modificări avansate

Publicat: 2021-01-26

În primul nostru articol din seria noastră despre personalizarea tabelelor de administrare WordPress, am analizat cum să aplicăm o configurație de bază la ecranele noastre de administrare a tipurilor de postări, inclusiv adăugarea unei coloane personalizate și sortarea acesteia.

Astăzi vom face un pas mai departe și vom analiza câteva modificări suplimentare care pot fi aplicate tabelului de administrare a listei de postări. Haide să mergem!

Îmbunătățirea tabelului de postări de administrator WordPress

Furnizarea de informații suplimentare în ecranul tabelului de administrare pentru utilizatorii dvs. backend va îmbunătăți cu siguranță experiența fluxului de lucru. În acest tutorial, vom urmări să îmbunătățim datele afișate în tabelul nostru Post Admin adăugând informații, modificând conținutul existent, reordonând coloanele și chiar eliminând coloanele inutile din tabel.

Afișați imaginile prezentate

Ar fi foarte util să adăugați o miniatură prezentată la lista de postări din tabelul dvs. de administrare. Acest lucru ar accelera cu adevărat capacitatea de a vedea dacă o postare are imaginea greșită (sau poate nu are deloc o imagine) fără a fi nevoie să deschideți fiecare postare individuală.

Pentru a realiza acest lucru, vom crea o coloană de imagine prezentată pentru pagina de editare a postării și o vom popula cu o miniatură a imaginii. După cum se arată în articolul nostru anterior, vom folosi manage_posts_columns . Dacă încă nu ați citit acest articol, vă rugăm să faceți acest lucru, deoarece include o parte din codul necesar pentru acest tutorial.

Dacă ați citit articolul și l-ați urmat, atunci ar trebui să aveți următorul cod în fișierul functions.php al temei active. Dacă nu, vă rugăm să-l adăugați!

 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; } }

Pentru a afișa imaginea prezentată în tabelul nostru de administrare, trebuie să edităm acest cod după cum urmează:

 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; } }

Numerele, 10 și 2 din al treilea și al patrulea argument, dictează prioritatea în care vor fi procesate funcțiile asociate acestei acțiuni. Aceste argumente vor fi transmise funcției noastre custom_columns_content .

Valoarea implicită pentru prioritate este 10. Numărul 2 arată cantitatea de argumente ale funcției. Deci, în cazul nostru, este important să includem aceste numere deoarece avem 2 argumente, și anume $column_id și $post_id .

Acum, cu acest cod salvat, să vedem ce avem în ecranul postărilor noastre de administrator.

Tabelul de administrare WordPress a prezentat imagini

După cum puteți vedea, acum avem o coloană „Ultima modificare” și noua noastră coloană „Thumbs”.

Schimbați etichetele coloanelor

Presupunând că vrem dintr-un motiv oarecare să schimbăm eticheta unei coloane, de exemplu, redenumim coloana „Autor” în „Scriitor”. Pentru a face acest lucru, putem defini pur și simplu noua etichetă în același mod în care am adăugat coloana personalizată. Încă o dată, pentru a menține codul mai distinctiv, vom separa fragmentele de cod de redenumire folosind o funcție diferită.

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

Desigur, puteți schimba eticheta mai multor coloane din același fragment de cod doar adăugând $columns['COLUMN_ID'] = 'NEW_LABEL'; chiar înainte return $columns;

Îmbunătățiți tabelul paginilor de administrare WordPress

Poate că nu știți acest lucru, dar Paginile WordPress sunt un tip de postare ierarhic, ceea ce înseamnă că fiecare pagină poate avea o pagină părinte.

Ar putea fi foarte util să vedeți dintr-o privire care pagină este pagina părinte a oricărei pagini copil. Să aruncăm o privire la cum să facem asta.

Adăugați o coloană personalizată care afișează postarea părinte

Mai întâi, ați creat câteva pagini părinte și copil cu câteva imagini prezentate asociate.

Postări pentru părinți și copii în tabelul de administrare WordPress

Apoi, vom pune un cod în fișierul nostru functions.php . Vom urma același proces pe care l-am făcut cu tipul Postări în ceea ce privește adăugarea a ceea ce vom numi coloana „Strămoș”.

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

Același lucru este valabil și pentru plasarea coloanei în poziția dorită în tabel. Vom reordona coloanele tabelului astfel încât coloana „Strămoș” să fie înaintea coloanei Autor.

 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; }

În acest moment, în ecranul de administrare al paginii, ar trebui să vedeți ceva de genul acesta:

Ultimul lucru pe care trebuie să-l facem este să umplem coloana „Strămoș” cu conținutul potrivit. Deoarece de data aceasta lucrăm cu un tip de postare ierarhic, vom folosi un cârlig diferit pentru a obține conținutul coloanei. Încercați să introduceți această bucată de cod și verificați rezultatul.

 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; } }

Acum ar trebui să vedeți pagina Părinte asociată alături de paginile lor secundare, listate în coloana „Strămoș”.

Acest lucru este deosebit de util dacă și atunci când ordinea paginilor dvs. din Tabelul de administrare este perturbată (de exemplu, deoarece sunt sortate după data publicării etc.) și, prin urmare, paginile secundare nu mai apar bine sub paginile părinte respective.

Modificarea coloanelor implicite

Există mai multe lucruri care pot fi făcute pentru a îmbunătăți coloanele implicite din tabelul de administrare. Să aruncăm o privire la unele dintre acestea.

Reordonarea coloanelor

În articolul nostru anterior despre personalizarea tabelelor de administrare, am adăugat o nouă coloană care afișează data ultimei modificări a postării. Dar dacă vrem să-i schimbăm poziția în ordinea coloanelor?

Din fericire, acest lucru este destul de ușor și poate fi implementat folosind cârligul manage_posts_columns .

Ceea ce trebuie definit este coloana care trebuie mutată și coloana imediat înaintea locului în care dorim să ne plasăm coloana. Deci, dacă, de exemplu, dorim imaginea caracteristică ca primă coloană a tabelului, va trebui să o mutăm înaintea coloanei de titlu. Codul piesei corespunzător ar trebui să fie astfel:

 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; }

Și voila!

adăugați imagini prezentate în tabelele dvs. de administrare WordPress

Eliminarea unei coloane

Ocazional, unele coloane din tabelul cu liste de postări nu sunt de fapt deosebit de utile și ar fi mai bine dacă ar fi eliminate pentru a elibera ceva spațiu. Un candidat comun pentru aceasta este coloana de comentarii.

Din fericire, este foarte ușor să eliminați o coloană din tabelul nostru. Trebuie doar să adăugăm unset($columns['comments']); în funcția de cârlig manage_posts_columns . Deși acest lucru ar putea fi adăugat la codul nostru existent, este mai bine dacă îl putem separa în propriul fragment de cod, deoarece are un scop diferit și introduce o nouă funcție în cârlig.

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

Si asta e. Reîmprospătați ecranul de administrator și ar trebui să vedeți că coloana Comentarii a dispărut.

Notă: dacă nu sunteți sigur care este ID-ul unei coloane, puteți detecta acest lucru utilizând consola de inspectori a browserului dvs.

Pluginul Coloane Admin

Dacă nu doriți să codificați modificări în tabelele dvs. de administrare WordPress, nu vă temeți... deoarece acesta este WordPress, există un plugin care vă va permite să faceți o serie de actualizări fără a fi nevoie să atingeți o linie de cod. Se numește Coloane Admin.

Notă: Înainte de a continua cu instalarea/activarea pluginului, este mai bine să reveniți la toate personalizările din tabelul cu liste de postări (dacă ați făcut vreuna) și să începeți să utilizați pluginul cu tabelul de postări admin în starea sa inițială.

După ce ați descărcat și instalat pluginul, accesați elementul de meniu Setări > Coloane admin. De aici puteți selecta tabelul cu liste de postări (sau orice alt tip de postare în care doriți să aveți posibilitatea de a edita tabelul de administrare) din lista verticală. Apoi vi se va afișa structura curentă a tabelului.

Acum, folosind o interfață drag-and-drop, puteți reordona cu ușurință coloanele. De asemenea, puteți edita eticheta de tip și lățimea utilizând pictograma săgeată pentru a vedea configurația acestora.

Și, da, puteți chiar să adăugați propriile coloane folosind butonul „Adăugați o coloană” din dreapta jos!

Ceea ce face de fapt pluginul aici este să adune toate opțiunile disponibile din tabelele bazei de date care se referă la tipul de postări și le oferă meniul derulant Tip. Deci, dacă, de exemplu, doriți să adăugați o coloană „Ultima modificare”, așa cum am făcut înainte, găsiți-o și selectați-o în lista Tip și apoi dați-i eticheta și lățimea dorită.

După aceea, puteți modifica opțiunile de format de dată care vor apărea dacă doriți.

Concluzie

Având informațiile potrivite pe tabelele dvs. de administrare WordPress, vă poate accelera fluxul de lucru și poate ajuta la prevenirea erorilor pe site-ul dvs. De exemplu, este mult mai puțin probabil să publicați o postare cu bună știință fără o imagine prezentată atunci când puteți vedea toate postările și imaginile prezentate asociate acestora dintr-o privire în tabelul de administrare a postărilor. Joacă-te și configurați tabelele de administrare care să se potrivească cu dvs. și fluxul dvs. de lucru.