Lavorare con tabelle di database personalizzate in WordPress

Lavorare con tabelle di database personalizzate in WordPress / Wordpress e sviluppo Web

Vi ho mostrato molti modi in cui WordPress è già il CMS più flessibile 5 Cose che potreste non sapere Potreste fare con Wordpress 5 Cose che potreste non sapere Potreste fare con Wordpress Essendo il sistema di blog più versatile di sempre, non è Sorprenda che gli sviluppatori abbiano stravolto e trascinato Wordpress a diventare molto di più attraverso l'uso intelligente dei plugin. Se pensavi che Wordpress fosse solo per ... Leggi altro. Una rapida scansione della pagina Best of WordPress Plugin mostrerà anche alcuni dei tanti modi unici e di nicchia per rendere il tuo blog più duro. Ti ho anche mostrato come utilizzare i tipi di post personalizzati Come creare il tuo elenco di eventi utilizzando i tipi di post personalizzati [Wordpress] Come creare il tuo elenco di eventi utilizzando i tipi di post personalizzati [Wordpress] Uno dei vantaggi dell'utilizzo di Wordpress è la sua pura flessibilità. La versione 3 ha introdotto il concetto di Tipi di post personalizzati per estendere la funzionalità integrata. Diamo un'occhiata oggi a cosa potresti fare ... Leggi di più per creare il tuo mini database Crea un database di recensioni prodotto con Wordpress: tipi di post personalizzati, campi personalizzati, immagini e widget! Crea un database di recensioni prodotto con Wordpress: tipi di post personalizzati, campi personalizzati, immagini e widget! L'ultima volta ti abbiamo mostrato come creare un semplice elenco di eventi utilizzando forse la più potente funzionalità di WordPress 3.0 - tipi di post personalizzati. Dopo alcune richieste per svilupparlo ulteriormente, oggi saremo ... Leggi altro; ma ho lasciato fuori una cosa, penso.

Cosa succede se si dispone già di un database di informazioni sui clienti, ma si desidera poter interrogare tali dati e visualizzarli all'interno di un modello WordPress? Oggi ti mostrerò come farlo, in modo sicuro all'interno del motore WordPress.

Requisiti

  • Il tuo sito WordPress self-hosted, ovviamente.
  • Abilità di base di PHP e MySQL: raccomando le esercitazioni Tizag PHP e MySQL, poiché coprono più che sufficienti e puoi lavorare su di esse in un giorno e farle nuovamente riferimento quando necessario.
  • Un dataset esistente in MySQL.
  • Riga di comando di accesso PHPMyAdmin per unire i database.
  • Un singolo database con entrambi i set di dati: ciò significa che è necessario unire le tabelle del database di WordPress in un database esistente e modificarle wp-config.php per riflettere il nuovo nome utente del database e i dettagli della password; o importa un set di dati esistente nel tuo database di WordPress. È più facile se non hai un altro sistema che si basa sui dati. Ad ogni modo, assumerò che tu abbia già fatto questo passo - controlla il mio articolo su come fare un backup completo del database tramite una riga di comando SSH Come eseguire il backup del tuo sito web tramite la linea di comando SSH Come eseguire il backup del tuo sito web tramite SSH Riga di comando Il backup del tuo sito web o blog può essere un compito costoso e arduo, che richiede una varietà di plug-in o piani aggiuntivi da parte del tuo provider di hosting, ma non è necessario. Se hai SSH ... Leggi di più se hai bisogno di alcuni suggerimenti lì.

Questo tutorial è tanto avanzato quanto lo sarà in MakeUseOf, ma dovrebbe aprirti un mondo di possibilità.

Perché dovrei farlo?

Nonostante i numerosi plug-in ed estensioni a nostra disposizione in WordPress, a volte hai già un set di dati e lo migri in un formato a cui piace WordPress sarebbe più fastidioso di quello che vale - specialmente se poi hai un altro sistema con cui devi interagire.

Oggi prenderò l'esempio di un semplice database di informazioni sui clienti e creeremo un modello di pagina che elenca questi clienti - solo per gli utenti registrati di WordPress (anche se la pagina stessa sarà accessibile dal front-end del sito ).

Come riferimento per i nomi di colonne e tabelle nel database, potrebbe essere utile installare il plug-in Browser Database, che ti permetterà anche di eseguire dove e ordinato da query per testare il codice SQL. Ecco uno screenshot con un set di dati di esempio che ho creato, in questo caso una tabella chiamata Clienti, contenente alcune informazioni di base su ciascuno dei miei clienti molto importanti.

Che cosa esattamente faremo qui?

  • Creazione di un nuovo modello di pagina che può quindi applicare un codice PHP personalizzato a.
  • Osservando come creare una query personalizzata nel database e quindi analizzare i risultati - utilizzando le classi di database WordPress incorporate.
  • Esaminare le autorizzazioni nel caso in cui si desideri limitare l'accesso.

Creare un modello personalizzato

Se si desidera utilizzare un codice PHP personale, il modo più semplice per farlo è creare un modello personalizzato, quindi applicare il modello a una pagina specifica creata in WordPress. Inizia aprendo i file del tema e duplicando il file page.php (o single.php se non ce n'è uno). Rinominare qualcosa di ovvio, come “template-customers.php” come ho scelto.

Nella parte superiore del file, dobbiamo dire a WordPress che questo è un modello personalizzato. Fatelo aggiungendo quanto segue (questo è un commento in stile PHP, quindi dovrebbe essere dopo ogni apertura del tag PHP se presente):

/ * Nome modello: Clienti * /

Ovviamente, chiamalo come preferisci.

Ora, trova la funzione del contenuto principale. Puoi eliminarlo se vuoi, ma sto solo aggiungendo il codice extra dopo di esso. Con il tema del ventunesima predefinito, stai cercando:

Ma nella maggior parte dei temi, sarà qualcosa di simile:

Questo è il bit che mostra il contenuto del tuo post, quindi tutto ciò che aggiungi dopo verrà mostrato subito dopo l'area del contenuto principale. Solo per verificare che tutto funzioni, aggiungiamo un'istruzione echo di base e salviamo il file.

Prima di poterlo verificare, dovremo creare una pagina sulla pagina di amministrazione di WordPress e applicare il nostro modello di pagina.

Pubblica e controlla la pagina per vedere se la tua dichiarazione di eco ha funzionato.

La classe di query personalizzata

Per ottenere l'accesso diretto al database, tutto ciò che devi fare è usare l'oggetto $ wpdb rendendolo globale. Queste tre linee dovrebbero farlo - sostituire la dichiarazione echo generica che abbiamo fatto prima con questo:

get_results ("SELECT * FROM customers;"); print_r ($ clienti); ?>

Salva e aggiorna la pagina. Il funzione print_r () semplicemente scarica tutti i dati dall'oggetto del cliente, quindi dovresti vedere che la tua semplice istruzione SQL per selezionare tutto dalla tabella dei clienti ha funzionato bene. Ora tutto ciò che devi fare è analizzare i risultati a qualcosa di utile. Naturalmente, puoi inserire qualsiasi istruzione di selezione SQL nel get_results () metodo, ma io non sono qui per insegnarti SQL, quindi continueremo ad afferrare tutto per ora.

Per analizzare i risultati in qualcosa di più significativo, per ora utilizzerò solo una tabella di base. Sostituisci il print_r metodo con il seguente codice (non ti preoccupare, in seguito incollo il codice completo se non vuoi metterlo insieme da solo):

eco ""; foreach ($ clienti come $ cliente) echo""; eco ""; eco ""; eco ""; eco ""; eco "";  eco "
"$ Customer> nome"."$ Customer> e-mail.""$ Customer> telefono.""$ Customer> indirizzo."
";

Una volta che ogni oggetto del cliente è all'interno di a per ciascuno, puoi accedere facilmente ai nomi dei campi con $ Customer> field_name - non potrebbe davvero essere più semplice.

Assicurare le cose

In questo caso, non voglio che i miei dati dei clienti vengano mostrati a chiunque e indicizzati dai motori di ricerca, ma lo voglio ancora sul front-end visualizzato usando questo modello; quindi cosa possiamo fare? Facile, utilizzeremo il condizionale di WordPress is_user_logged_in (), e visualizzare un messaggio rapido se non lo sono. Ecco di nuovo l'intero blocco di codice con il nuovo condizionale aggiunto:

get_results ("SELECT * FROM customers;"); eco ""; foreach ($ clienti come $ cliente) echo""; eco ""; eco ""; eco ""; eco ""; eco "";  eco "
"$ Customer> nome"."$ Customer> e-mail.""$ Customer> telefono.""$ Customer> indirizzo."
"; altrimenti: echo" Siamo spiacenti, solo gli utenti registrati possono visualizzare queste informazioni "; endif;?>

Salva e aggiorna, e dovresti comunque vedere il contenuto. Tuttavia, disconnettersi, poi Aggiorna la pagina e ora vedrai il “Siamo spiacenti, solo gli utenti registrati ... ” Messaggio.

Se si volesse limitare questo a determinati livelli di utenti piuttosto che a tutti gli utenti registrati, si utilizzerà il current_user_can () condizionale invece, insieme a una capacità associata (maggiori informazioni sulle funzionalità del codice). Ciò verificherebbe per gli utenti amministratori, ad esempio, gli unici utenti che possono gestire le opzioni del plug-in:

current_user_can ('manage_options')

Sommario

Lo lascerò lì oggi come qualsiasi altra cosa diventerebbe un SQL Come modificare migliaia di post di Wordpress con un solo comando SQL Come modificare migliaia di post di Wordpress con un solo comando SQL Crescere in un blog richiede anni e un intero lotto di dolore e di lotta. Poi ci sono le principali transizioni, quando ti rendi conto che devi apportare alcune modifiche importanti, e ci vorranno ... Leggi di più tutorial o su come modellare il tuo output con i CSS. Il cielo è davvero il limite con WordPress, e spero che questo sia utile ad alcuni di voi nei vostri progetti WordPress.

La prossima settimana affronterò l'argomento un po 'più complicato su come inserire i dati nel tuo database personalizzato usando un modulo sulla pagina e un po' di magia AJAX / jQuery.

Non hai ancora un'installazione di WordPress? Consulta la nostra guida per l'installazione di WordPress su Bluehost Come installare WordPress su Bluehost Come installare WordPress su Bluehost Bluehost è tra i più grandi e popolari provider di hosting web. Ecco una semplice guida su come installare WordPress su Bluehost. Leggi di più .

Scopri di più su: Strumenti per i Webmaster, plugin Wordpress.