Visita Orebla.it su Facebook Segui Orebla.it su Twitter Vedi i video su YouTube di Orebla.it Unisciti alle cerchie di Orebla.it
DOVE TI TROVI: \\ Home Page\ Guide iPhone\Wordpress: come visualizzare post per categoria con SQL

WordPress: come visualizzare post per categoria con SQL

di Melloni Luca pubblicato il 27 dicembre 2010 in Guide-Tutorial, Web.


Come visualizzare, su una pagina non di wordpress o in Home Page, i post suddivisi per categoria; interrogando direttamente il database di wordpress tramite query SQL con uno script PHP senza utilizzare Plugin.

Dopo avere effettuato mille ricerche su Google, e non aver trovato nulla a riguardo mi sono dovuto arrangiare. Per questo motivo ho voluto condividere quello che ho scoperto su questo argomento. Per impedire che altri webmaster si trovino nella mia stessa situazione.

IL DATABASE DI WORDPRESS:

Al momento in cui scrivo la versione di WordPress è la 3; e in questo momento il database risponde alle seguenti logiche:

WordPress memorizza i post, o articoli, nella tabella ‘wp_posts‘.
Memorizza, poi, le categorie, i tag nella tabella ‘wp_terms‘.

La logica associativa di queste due tabelle funziona nel seguente modo: nella tabella ‘wp_term_taxonomy‘ WordPress descrive, per ogni riga, cosa quel determinato termine è; cioè ci spiega se il term ‘windows’ è una categoria o un TAG!

Dopo averlo definito WordPress effettua le associazioni nella tabella ‘wp_term_relationships‘: qui noi sappiamo ogni post a cosa è collegato!

ESEMPIO:

Vogliamo estrapolare tutti gli articoli che siano stati scritti sotto la categoria ‘windows‘. Noi dobbiamo andare in wp_terms controllare a quale ‘term_id’ corrisponde la categoria ‘windows’ e segnarcelo su un foglio. Consiglio magari per prendere manualità di creare una categoria di prova che chiamiamo con un nome inventato per non confonderlo con i TAG!

Una volta scritto, su un foglio, il ‘term_id‘ andiamo in ‘wp_term_taxonomy‘ scorriamo la tabella cercando nella colonna ‘term_id‘ il valore che ci siamo segnati, riferito alla nostra categoria e segniamoci il valore ‘term_taxonomy_id‘ relativo.

Bene siamo già alla fine di questo viaggio nei meandri del database di WordPress! Portate pazienza!

Ora nella tabella ‘wp_term_relationships‘, invece, avremo la lista dei post associati alla categoria in questione.

Ci basta effettuare una semplice query per estarli, eccola:

$sql = "SELECT * FROM `wpguide_term_relationships` WHERE `term_taxonomy_id` = 12 LIMIT 0, 30 ";

Nel mio caso la query restituisce 5 risultati, che sono i 5 articoli scritti in quella determinata categoria!

Ora effettuiamo una JOIN SQL fra diverse tabelle per ottenere il risultato!

Eccola:

$query="SELECT p.post_content, p.post_title, p.guid FROM wp_posts AS p, wp_term_relationships AS r WHERE p.ID = r.OBJECT_ID AND r.term_taxonomy_id = '12'";

E come per magia vi restituirà 3 campi:

  1. Post_content: il testo dell’articolo;
  2. Post_title: titolo articolo;
  3. Guid: il permalink all’articolo!

Condividi:

Tag articolo:
, ,
Ti è piaciuto l'articolo?
NoSi (+1: punteggio, 1 voti totali)
Loading ... Loading ...
Melloni Luca avatar A proposito di Melloni Luca:

Fondatore e Redattore di Orebla.it. Maniaco di iPhone, PHP, Programmazione e tecnologia, ho scritto diverse guide per il portale Php.html.it di cui gestisco, attualmente, la sezione Script. Sono stato per anni Leader del Team Sviluppatori su PhpBB.it. Se volete seguirmi su Twitter cercate: @melloniluca.

Tutti gli articoli di: .


Commenti e trackback abilitati.

3 risposte a WordPress: come visualizzare post per categoria con SQL

  1. Juri scrive:

    Dovrei importare i contenuti di un sito (articoli, categorie, tag e allegati) in un altro sito, ma non ce la faccio, né con l'importer del file xml (che è superiore a 25 mega) né importando il database (mi dà errore, anche se importo la sola tabella wp_posts.
    MI potresti dare una mano? Grazie mille in anticipo.

    • Melloni Luca scrive:

      Scommetto che l'errore che hai è di TimeOut?!?
      È un problema comune in quanto si tratta di un'impostazione di sicurezza del server.

      Hai due possibilità:
      1- Splitti il codice SQL da importare con MySql in più parti piccole e con pazienza le carichi tutte;
      2- Contatti il tuo gestore del server e gli chiedi se possono farlo loro al tuo posto!

      Saluti
      Luca

  2. Juri scrive:

    Grazie mille.
    Juri

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>





Recensione iPhone 5!