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

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

14

TL; DR: lavorerò su una serie che esaminerà come ottenere un compito utile con le tassonomie, probabili categorie, quindi refactoring in un plug-in orientato agli oggetti che fungerà da plug-in di utilità per le tassonomie, in generale .


Una breve storia dei post OOP

Qualche tempo fa, ho fatto una lunga serie sui principi della programmazione orientata agli oggetti (e ho cercato di condividere una discreta quantità su come ottenere determinate cose nel contesto di WordPress).

Ho anche scritto un sacco di articoli sull’intero paradigma nel corso degli anni per coloro che sono interessati a recuperare il ritardo su alcuni di quegli articoli.

E sarei negligente se non dicessi che anche un mio caro amico ha scritto un libro sull’argomento.

E quindi, poiché ho pensato a vari argomenti su cui scrivere (dopo aver preso un periodo di tempo più lungo del previsto), ho pensato che potesse valere la pena parlare di cose pratiche che possiamo fare con normali API e hook e poi refactoring in un tipo di plug-in di utilità.

Aggiungi una vista personalizzata

Ai fini del lavoro che condividerò in questa demo, utilizzo quanto segue:

Se vuoi seguire quello che sto succedendo, usa tutto quanto sopra (non so se condividerò tutto ma se vedi screenshot e frammenti di codice, saprai da dove viene ).

Detto questo, ecco una breve digressione su viewsWordPress (e non è come Views nel senso di MVC o MVVM ).

Viste di WordPress

Al momento in cui scrivo, non sembra esserci una dichiarazione chiara e concisa su cosa sia una vista di WordPress. In termini di hook disponibile, abbiamo views_edit-post.

Quindi, se prendiamo quel particolare hook e quello che fa, forse qualcosa del genere sarebbe sufficiente:

Una vista WordPress è una pagina in cui possiamo visualizzare tutti i post conformi a una serie di criteri specificati.

Fuori dagli schemi, questo criterio di solito include post come:

  • Pubblicato,
  • Bozze,
  • Spazzatura,
  • Programmato,
  • E così via.

Ma cosa succede se hai un altro post che ha altri criteri in base ai quali desideri filtrare? Certo, puoi filtrare in base alla casella a discesa presente sullo schermo (ad esempio per categoria) e va bene, ma cosa succede se si desidera utilizzare un criterio personalizzato per [qualsiasi motivo]?

Ad esempio, cosa succede se non si desidera dover fare clic su un determinato elemento, quindi filtrare e visualizzare i post? Vuoi invece vedere un link ai criteri, il numero di post che soddisfano i criteri e poi filtrarli in base a questi?

È qui che entra in gioco la possibilità di modificare le visualizzazioni.

E ai fini di questo post, tratterò come introdurre una nuova ancora nella parte superiore della pagina che elencherà il numero di post per una categoria specificata.

Qual è il nostro punto di vista?

In questo caso, useremo Uncategorized perché un’installazione predefinita ha già un post non categorizzato disponibile e possiamo facilmente modificare alcune modifiche attorno a questo.

Per fare ciò, scriveremo un file mu-pluginin modo che venga inserito nella mu-pluginsdirectory. Se la tua installazione non ne ha una, aggiungi la directory e quindi aggiungi add-custom-view.phpalla directory:

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Da lì, il file del plugin iniziale potrebbe assomigliare a questo:

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Inizialmente, stiamo facendo quanto segue:

  1. Impostazione di uno spazio dei nomi,
  2. Aggiungendo un filtro,
  3. Quindi imposta la funzione che accetterà il set predefinito $viewse restituirà l’array di $viewsdopo che sono stati modificati.

Quindi cosa dobbiamo fare da qui?

L’insieme dei requisiti

Per ottenere ciò che vogliamo, dobbiamo essere in grado di:

  • Specificare il nome della categoria,
  • Aggiungi il link alla categoria insieme al numero di post con quella categoria all’elenco delle visualizzazioni,
  • La possibilità di determinare se siamo nella pagina delle categorie per definire correttamente lo stile dell’elenco
  • La possibilità di filtrare per tipo di post,
  • E un modo per testarlo.

Tutto quanto sopra sarà trattato nel codice più avanti nell’articolo, ma il quinto passaggio richiede la creazione manuale di una categoria in modo da poter testare facilmente se il resto del codice funziona.

Quindi vai avanti e fallo. La categoria può essere chiamata qualsiasi cosa (ho usato Categoria di esempio). Una volta terminato, scriviamo il codice dal resto del plugin.

Determina il nostro punto di vista

Innanzitutto, condividerò una funzione che determinerà in quale pagina ci troviamo e farà una delle due cose:

  • Se siamo su una pagina che ha lo stesso parametro della stringa di query per l’ID della nostra categoria, fornirò un nome di classe; in caso contrario, restituiremo una stringa vuota.

Per fare ciò, la funzione dovrebbe:

  1. Accetta un nome di categoria,
  2. Inizializzare una variabile per gli attributi,
  3. Confronta le variabili della stringa di query
  4. Determina se il nome della categoria e l’ID della categoria sono gli stessi,
  5. E restituire il valore corretto, in caso contrario.

Ecco come appare la mia funzione:

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Questo potrebbe anche essere semplificato con un operatore ternario, ma per mantenerlo il più leggibile possibile, lo lascio così com’è per ora.

Determina il nome della categoria

Questa particolare funzionalità è in realtà molto semplice e sebbene siamo abituati a ricevere input dagli utenti in gran parte di ciò che facciamo, eseguiremo l’hardcoding di questo valore.

Per fare ciò, memorizzeremo semplicemente questo in una variabile che verrà passata nel resto del codice.

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Hai visto la variabile passata in precedenza nella funzione precedente e la vedrai usata anche nella versione finale del codice sorgente.

Recupera i risultati dei post con la categoria

Per questo, dobbiamo fare due cose:

  1. Recupera tutti i object_idrecord che hanno l’ID di questa categoria,
  2. Filtra i contenuti che non sono per questi post.

Ci sono un paio di cose che voglio menzionare qui: in primo luogo, utilizzeremo la get_cat_IDfunzione fornita da WordPress. Questo recupera l’ID della categoria in base al nome in entrata.

In secondo luogo, sto usando due funzioni, una delle quali è un ciclo, per esaminare lo stato del post di un elemento. Questo non è il modo più efficiente per farlo. Invece, potremmo usare una query più elegante per recuperare solo i post; tuttavia, la prima iterazione di questo ha lo scopo di mostrare come non solo farlo da zero, ma anche per un pubblico che potrebbe non essere così a suo agio con altri aspetti della scrittura del codice.

Detto questo, ecco come otteniamo tutti i record in WordPress contrassegnati come Non categorizzati.

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

E con ciò, prendiamo i risultati e li inviamo in questa funzione che restituirà il numero di elementi che sono solo post.

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Con ciò, abbiamo la maggior parte di ciò di cui abbiamo bisogno per iniziare a mettere insieme il nostro punto di vista.

Genera un’ancora di visualizzazione

Ora che abbiamo tutte le funzioni necessarie per generare un’ancora di visualizzazione, dobbiamo metterle insieme al posto di sprintfuna formattazione sicura delle stringhe.

L’obiettivo è generare un’ancora che:

  • Sembra il resto delle ancore,
  • Mostra il numero di post,
  • È in grassetto ogni volta che visualizzi detti post.

Per fare ciò, dobbiamo creare il collegamento e aggiungere gli argomenti della stringa di query appropriati. Ciò significa che imposteremo un collegamento edit.phpcon argomenti per:

  • l’ID della categoria,
  • il tipo di post di post,
  • e tutti i post che hanno questa categoria.

Successivamente, dovremo includere:

  • qualsiasi attributo per definire lo stile del collegamento,
  • il nome della categoria,
  • e solo il contenuto del post post_type.

Per fare ciò, possiamo utilizzare la seguente funzione:

Aggiungi una visualizzazione personalizzata alla schermata Tutti i post

Questo fa diverse cose:

  1. Accetta l’array standard di $viewsda WordPress,
  2. Aggiunge il nostro ancoraggio personalizzato come descritto sopra,
  3. Lo inserisce $viewsnell’array,
  4. Lo restituisce a WordPress per il rendering.

E questo è tutto!

Testandolo

Per testare questo, carica il tuo browser e dovresti vedere un nuovo link Uncategorized accanto al resto delle ancore come Tutto, Pubblicato, Mio, Cestino, Programmato, ecc.

Dopodiché, cambia una categoria di post e rimuovi Uncategorized, quindi rivisita o aggiorna la pagina Tutti i post e vedrai che il link è attivo e con uno stile, a seconda di come lo stai visualizzando, e include il numero di post classificati anche come tale.

Ora, su GitHub

Ho caricato la prima iterazione di questo plugin su GitHub in modo che tu possa scaricarlo e inserirlo nella tua mu-pluginsdirectory per il test.

Nei prossimi post, vorrei iniziare cambiando questo in un paradigma orientato agli oggetti, in modo che quelli siano i cambiamenti che stanno arrivando al plugin e il contenuto che arriverà nei post futuri.

Fonte di registrazione: tommcfarlin.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