wordpress: aggiungere codice html nel loop

Inserire del codice html tra gli articoli di wp è cosa relativamente semplice, la procedura è anche ben spiegata nelle Faq del forum di wp-italia anche se seguendo alla lettera tali istruzioni si ottiene spesso un errore, ecco che allora ripropongo i passaggi necessari all’operazione.
Prendo come esempio il tema di base di wp twentyten.
Dobbiamo inserire alcune stringhe di codice all’interno del loop che nel nostro caso si trova nel file loop.php.

troviamo questa stringa <?php if ( ! have_posts() ) : ?>
e aggiungiamo <?php $nr_post = 0; ?>

dopo alcune righe cerchiamo quest’altra <?php while ( have_posts() ) : the_post(); ?>
e aggiungiamo
<?php if ($nr_post == 1) : ?> Codice HTML Personalizzato <?php endif;  $nr_post ++; ?>

modificando il valore post == 1 stampiamo il codice dopo il primo, secondo, … articolo
post == 0 stampa in nostro contenuto prima del loop
vedi immagine 1

loop-1.pngloop-2.pngloop-3.png

Si può inserire qualsiasi codice html per file video, immagini, testo, iframe, …. ma per modificarlo dobbiamo sempre intervenire sui file del tema, cosa non sempre agevole.
Per facilitare le operazioni di manutenzione possiamo ricorrere ad un file allegato, il codice indicherà di caricare un file a quel punto del loop, e noi andremo ad editare tale file come un normale post di wordpress.
Per permettere tale funzione inseriamo al posto del nostro codice html questa stringache richiama un file php. vedi immagine 2
otterremo questo risultato
<?php if ($nr_post == 1) :  include (‘wp-loop.php’);  endif;  $nr_post ++; ?>

Nel nostro caso richiamiamo un file wp-loop.php che posizioniamo nella cartella  root di wp include (‘wp-loop.php’); e creiamo il file wp-loop.php vedi immagine 3

<?php
$database='xxx';   // nome del database
$nick='xxx';     // nome utente database
$dbpass='xxx';   // password utente database
 // ora mi collego con il database
$conn = mysql_connect("localhost","$nick","$dbpass");
mysql_select_db("$database", $conn);
 // seleziono dalla tabella wp_posts il records con ID=1
$rs = mysql_query("SELECT * FROM wp_posts WHERE ID ='1'");
$nr = mysql_num_rows($rs);

 for($x = 0; $x < $nr; $x++){
 $row = mysql_fetch_assoc($rs);
 // ora stampo il contenuto del post del record selezionato
 echo  $row['post_content'] ."<br />";
 }
?>

Il file andrà completato inserendo al posto delle xxx i dati di connessione al database di wp già contenuti nel file wp-config.php, con questi parametri si commetterà al database e estrarrà dalla tabella dei post quello con ID=1, (se esiste) è possibile cambiare l’id con un altro a piacere.
non ci resta che modificare tale post dall’editor interno di wp per visualizzare il suo contenuto tra gli articoli lungo il loop.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...