Integrare WordPress in CodeIgniter

Si sta realizzando una piattaforma attraverso il framework CodeIgniter e il Cliente dice:
“…vorrei che si vedessero immagine, anteprima dell’articolo e link del post ‘X’ in una determinata pagina e l’elenco degli ultimi post pubblicati sul blog nel footer…”

Per utilizzare le funzionalità di WordPress, dobbiamo in qualche modo interfacciarci al suo “core”, un po’ come abbiamo letto nell’articolo Integrare il carrello acquisti di Magento in WordPress, dove la necessità era l’integrazione di una funzionalità di Magento in WordPress.

Bene, iniziamo.

Apriamo il file index.php presente nella root del progetto CodeIgniter ed inseriamo, prima di qualsiasi altra cosa, le seguenti righe di codice:

define(‘WP_USE_THEMES’, false);
require(‘blog/wp-load.php’);

La prima riga indica a WordPress, nel momento in cui viene inizializzato, di non utilizzare il tema/template attualmente in uso (parametro impostato su “false”).

Nella seconda riga includiamo/importiamo il file “wp-load.php”, attraverso il quale potremo utilizzare le funzionalità del blog WordPress.

Fatto ciò, andremo nella “view” di CodeIgniter per aggiungere il codice necessario a visualizzare ciò che ci interessa.

Vediamo come soddisfare la prima richiesta del nostro Cliente: visualizzare le informazioni di uno specifico post..

Premessa: dobbiamo conoscere gli ID del post da visualizzare.

Abbiamo due modi:
1. utilizziamo un plugin;
2. nel back end di WP, nell’elenco dei post, passiamo col mouse sull’elemento che ci interessa e leggiamo, nella barra di stato del nostro browser, il numero dopo il testo “post=” (es.: post=123). Quel valore numerico indica l’ID del nostro post!

Recuperato l’ID, passiamo al codice e analizziamolo riga per riga.

$post_id=123;
$post_data=wp_get_single_post($post_id, ARRAY_A);
echo $post_data[‘post_title’];
echo ‘<a href=” ‘.get_permalink($post_id).'”>’.get_the_post_thumbnail($post_id, array(320, 240)).'</a>’;
echo “<p>”.textPreview(strip_tags($post_data[‘post_content’]), 150).”</p>”;
echo ‘<a href=”‘.get_permalink($post_id).'”>Leggi l’articolo completo </a>’;

Partiamo indicando il post del quale leggeremo i dati, nel nostro esempio quello con ID uguale a 123.

Recuperiamo tutte le informazioni del suddetto post tramite la funzione, messa a disposizione dalle API di WordPress, wp_get_single_post($postid, $mode) (ATTENZIONE: dalla versione 3.5 di WordPress questa funzione è deprecata! Al suo posto si può utilizzare la funzione get_post()).

Tale funzione prende come parametri l’ID del post da caricare e la modalità nella quale le informazioni devono essere restituite.
Abbiamo scelto di avere come risultato un array associativo. Le altre modalità sono: OBJECT e ARRAY_N.

Nella nostra variabile $post_data, quindi, avremo tutte le informazioni del post. Non elenchiamo tutti i campi ma focalizziamo l’attenzione solo su quelli che ci interessano:
– post_title
– post_content

In più, utilizzando altre funzioni andremo a prelevare informazioni quali il link e l’immagine di anteprima del post.
Andando per ordine
$post_data[‘post_title’] è il titolo del post
$post_data[‘post_content’] è il contenuto del post

Il resto del codice…

echo ‘<a href=” ‘.get_permalink($post_id).'”>’.get_the_post_thumbnail($post_id, array(320, 240)).'</a>’;

Non facciamo altro che visualizzare l’immagine del post, rendendola cliccabile.

get_the_post_thumbnail($post_id, array(320, 240))

restituisce l’immagine del post. Il primo parametro è l’ID del post, il secondo è riferito alle dimensioni di visualizzazione dell’immagine (noi abbiamo scelto 320×240 pixel; attenzione alle proporzioni!).

Impostiamo poi la proprietà href del tag <a> con il link al nostro post tramite la funzione get_permalink(). Anche qui dobbiamo indicare l’ID.

textPreview(strip_tags($post_data[‘post_content’]), 150)

Qui abbiamo utilizzato una funzione PHP scritta ad hoc per accorciare il testo del post. I parametri passati alla funzione sono il contenuto del post ($post_data[‘post_content’]) e la lunghezza massima del testo da visualizzare. Inoltre vogliamo “pulire” il codice da eventuali tag aggiunti durante l’inserimento del testo da WordPress.

Utilizziamo per questo compito la funzione PHP strip_tags().

echo ‘<a href=”‘.get_permalink($post_id).'”>Leggi l’articolo completo </a>

Ques’ultima riga ci permette di creare un link al post del blog.

Non ci resta che uniformare la visualizzazione allo stile del sito ed il nostro primo step è completato!

Nel prossimo articolo vedremo come realizzare la successiva richiesta del nostro Cliente, ovvero visualizzare l’elenco degli ultimi post del blog nel footer…