WP 006 – Tabelle personalizzate e “wpdb”

Appunti relativi alla mia prima installazione di WordPress. Le seguenti indicazioni sono visualizzabili su questo sito per esclusivo uso personale. Il sottoscritto non si ritiene responsabile di problemi derivanti dall'utilizzo di tali indicazioni. P.S. - Alcuni contenuti potrebbero risultare obsoleti.

Torna all’elenco WordPress

La classe wpdb

Durante la realizzazione di questo sito, non volendo riscrivere molte delle pagine che avevo sul sito precedente, ho pensato di costruire delle tabelle personalizzate all’interno del database di WordPress ed utilizzare la classe wpdb per accedere ai suoi dati.

La classe wpdb contiene un insieme di funzioni che possono essere utilizzate per interagire con il database WordPress e, volendo, anche con altri database.

Riferimento: CODEX wordpress.org

Considerazioni

  • Non sarà di certo la soluzione ottimale (non mi sono ancora completamente addentrato nei meandri di WorPress), ma comunque funziona. In futuro, magari, nascerà qualcosa di più elegante
  • La funzione standard di WordPress per effettuare ricerche non contemplerà i dati all’interno di tale tabella. Può darsi che esista un modo per farglielo capire, ma per adesso desisto.
  • L’inserimento degli elementi all’interno della tabella dovrà essere effettuato con PhpMyAdmin o con un tool equivalente. Io, da un po’ di tempo, utilizzo adminer-4.7.7-mysql. Molto snello: provare per credere. Ho letto delle guide che permettono di realizzare strumenti di aggiornamento di tabelle direttamente dal pannello di controllo, ma anche qui ho desistito.

Importazione/costruzione della tabella

La tabella che è stata importata, rinominata my_arduino, (volendo se ne può costruire una ex novo) presenta i seguenti campi:

Contiene, sostanzialmente, una serie di esercizi su Arduino, dove i campi rappresentano:

  • id_esercizio: identificativo
  • t_esercizio: titolo dell’esercizio
  • t_autore: autore
  • t_content: contenuto preformattato (indicazioni)
  • t_codice: contenuto preformattato (codice)
  • d_data: data di inserimento (inutilizzata)
  • b_visibile: campo booleano: 1 se da visuallizzare 0 altrimenti

Realizzazione

Per realizzare quello che mi serve ho costruito due pagine:

  • Arduino – Esercizi: visualizza l’elenco degli esercizi (solo il titolo)
  • Arduino – Esercizio: visualizza un singolo elemento della tabella 

N.B. Il codice per la costruzione delle due pagine è relativo ad una prima stesura; in futuro potrebbe subire delle variazioni.

Arduino – Esercizi

La pagina per visualizzare la lista completa degli esercizi si avvale di uno shortcode realizzato grazie al plugin Insert PHP Code Snippet (XYZ PHP Code)

Il richiamo alla pagina dell’esercizio viene effettuato, non inviando l’ID dell’esercizio, ma il numero dell’elemento (la lista degli esercizi è numerata da 1 a $numero_di_record); questo per facilitare la scrittura del menu di navigazione tra gli esercizi.

Il codice richiamato dallo shortcode è il seguente:



Per la paginazione ho costruito la funzione my_get_paginazione (più generale possibile, in modo da poterla utilizzare in altre situazioni; spero di non doverci più mettere mano) inserita all’interno del file functions.php del tema child.

Arduino-Esercizio

Anche per questa pagina ho realizzato uno shortcode grazie al plugin Insert PHP Code Snippet (XYZ PHP Code). Il codice richiamato è il seguente:



La navigazione tra gli esercizi avviene grazie alla funzione my_get_navigator definita in functions.php del tema child.



Problemi

Nella realizzazione di questa pagina ho avuto un po’ di problemi per visualizzazione il codice con un highlight. Agganciare, in qualche modo, il plugin usato (Urvanov Syntax Highlighter) non è stato possibile. Ho tentato di utilizzare altri evidenziatori di codice, tipo highlight.js, provando ad inserire javascript nella pagina in diversi modi, ma non ha dato risultati (In tutti i test effettuati fuori da WordPress funziona). Per adesso mi sono arreso e ho presentato il codice a video come normale testo preformattato.