Come creare un tema per WordPress 3.0 – index.php

Dopo aver definito il nostro tema, come detto nella guida precedente, andremo a scrivere il file index.php, che sarà l’home page del nostro blog, quindi la pagina principale del tema.

Per parlare di questa parte dobbiamo necessariamente introdurre il LOOP di wordpress.

Vediamo la prima riga di codice:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

E’ una semplice riga php con 3 funzioni tipiche di wordpress.

Inizialmente ci sarà un if con all’interno la funzione have_posts(), è una funzione di wordpress che restituisce vero se ci sono post. Successivamente abbiamo un while, che verrà eseguito solo se ci sono post, cioè se la funzione have_post() restituirà true. All’interno del while abbiamo nuovamente la funzione have_post(), così che il while venga eseguito finché ci sono post. L’ultima funzione, the_posts() si occuperà di rendere disponibile il post, in modo da poterlo visualizzare a video.

Ovviamente quando la funzione have_post() restituirà un valore falso allora usciremo dal loop.

Saltiamo verso la fine del nostro index e vediamo come termina in caso non ci siano post.

<?php endwhile; else: ?>

Con queste righe terminiamo il while, ma non l’if, perché, nel caso non ci siano post, andremo a mostrare un messaggio di errore.

Successivamente a questo messaggio andremo a terminare pure l’if iniziale, dato che non ci sono più post da visualizzare.

<?php endif; ?>

Precedentemente avevamo saltato la parte dentro il loop, quella dove andremo a mettere i nostri post, vediamo come riempirla.

<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a>

Con questo codice mostreremo il titolo del post con il link all’articlo.

Infatti la funzione the_permalink() mostrerà il link all’articolo, la funzione the_title_attribute() non farà altro che mostrare l’attributo del titolo, infatti viene utilizzata per completare il tag title del link, la funzione più interessante è the_title() che restituirà il titolo del nostro post. Il tutto è racchiuso dentro il tag html a che creerà il collegamento grazie alle funzioni sopra descritte.

Dopo il titolo inseriamo la data di pubblicazione del post.

<?php the_time(‘F jS, Y’) ?>

Con la funzione the_time() è infatti possibile recuperare la data, in questo caso nel formato mese giorno, anno, ma è possibile modificare il formato nella maniere più appropriata per noi, non sto qui a elencarvi tutte le soluzioni ma vi mando direttamente al codex di wordpress..

Nel caso di un blog multi-autore sarebbe utile sapere a chi è attribuito l’articolo, la funzione the_author_posts_link() ci restituisce l’autore con un collegamento alla sua pagina.

Dopo il titolo, la data e l’autore è giunta ora di visualizzare il contenuto, la funzione

<?php the_content(__(‘continua a leggere &raquo;’)); ?>

Ci permetterà di visualizzare il contenuto con un link che porterà all’articolo, il link sarà , in questo caso, “continua a leggere >>”

Infine elenchiamo le categorie in cui è stato postato il post.

<?php the_category(‘, ‘); ?>

è la funzione che ci permetterà di fare questo.

Ora tocca ai commenti

<?php comments_popup_link(‘Nessun commento &raquo;’, ‘1 Commento &raquo;’, ‘% Commenti &raquo;’); ?>

comments_popoup_link è una funzione che ci permetterà di visualizzare il numero di commenti al post con un link ad essi, permettendo di definire la scritta da visualizzare nel caso non ci siano commenti, ce ne sia soltanto uno o ce ne siano molti. Queste scritte vanno aggiunte come mostrato nella funzione sopra, il carattere % serve a mostrare il numero di commenti nel caso ce ne siano più di uno.

La pagina principale è quasi terminata, mancano infatti i link per raggiungere le pagine precedenti e successive.

<?php next_posts_link(‘&laquo; Precedenti’) ?>

<?php previous_posts_link(__(‘Successivi &raquo;’)) ?>

Le funzioni next_posts_link() e previous_posts_link() mostrano rispettivamene il link per raggiungere la pafina successiva e precedente, i parametri delle funzioni servono per mostrare il testo.

Come tocco finale andiamo a modificare la pagina aggiungendo dinamicamente testata (header), sidebar e footer.

<?php get_header(); ?>

che si occuperà di recuperare il file header.php che creeremo successivamente contenente la testata, ed in fondo alla pagina le funzioni

<?php get_sidebar(); ?>

<?php get_footer(); ?>

che recupereranno rispettivamente, la sidebar (sidebar.php), cioè la barra laterale, e il footer (footer.php) cioè la parte finale della pagina, che solitamente sono sempre uguali per tutte le pagine.

Vedremo successivamente come creare queste 3 pagine.

Per adesso vi posto il codice completo della pagina index.php, con i commenti che vi aiuteranno ancora di più.

<!– Recupero l’header –>

<?php get_header(); ?>

<!– Comincia il loop –>

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<!– Mostro il titolo con il link al post –>

<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a>

<!– Visualizzo la data nel formato “mese giorno, anno” e un link all’autore –>

<?php the_time(‘F jS, Y’) ?> da <?php the_author_posts_link() ?>

<!– Visualizzo il contenuto e il testo da mostrare alla presenza del tag more –>

<?php the_content(__(‘continua a leggere &raquo;’)); ?>

<!– Visualizzo la lista della categorie separate dalla virgola –>

Postato in <?php the_category(‘, ‘); ?>

<!– Visualizzo il numero di commenti–>

<?php comments_popup_link(‘Nessun commento &raquo;’, ‘1 Commento &raquo;’, ‘% Commenti &raquo;’); ?>

<!– Finisce il loop, ma non l’else –>

<?php endwhile; else: ?>

<!– se non ci sono post motro la scritta –>

Scusa, ma a questa pagina non corrisponde alcun risultato.

<!– Finisce il loop, anche l’else –>

<?php endif; ?>

<!– Link alle pagine precedenti o sucessive –>

<?php next_posts_link(‘&laquo; Precedenti’) ?>

<?php previous_posts_link(__(‘Successivi &raquo;’)) ?>

<!– Recupero la sidebar –>

<?php get_sidebar(); ?>

<!– Recupero il footer –>

<?php get_footer(); ?>

Potete comunque scaricarlo da qui.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *