Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 12 di 33
  • livello avanzato
Indice lezioni

Il file index.php, funzioni, commenti, sidebar e fondo pagina

Scopriamo come il file index.php consente di definire un tema per WordPress e come i tag utilizzati influenzano i template di componenti di pagina come i commenti, la sidebar e il footer di un sito Web.
Scopriamo come il file index.php consente di definire un tema per WordPress e come i tag utilizzati influenzano i template di componenti di pagina come i commenti, la sidebar e il footer di un sito Web.
Link copiato negli appunti

Le funzioni dello script

Nello script appena visto si è più volte fatto ricorso alla funzione _e(): questa genera un testo corrispondente alla traduzione della stringa passata come primo argomento (il secondo argomento definisce il textdomain dove recuperare la traduzione). La funzione posted_on() non fa parte del framework, ma viene definita nel file functions.php come segue:

function posted_on() {
	printf( __( '<span class="sep">Posted </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a> by <span class="byline author vcard">%5$s</span>', '' ),
		esc_url( get_permalink() ),
		esc_attr( get_the_time() ),
		esc_attr( get_the_date( 'c' ) ),
		esc_html( get_the_date() ),
		esc_attr( get_the_author() )
	);
}

Oltre alle due funzioni riportate qui sopra, si è fatto ricorso a svariati tag del framework:

Tag Descrizione
the_ID() Manda a video una stringa con l'ID del post corrente; va utilizzata all'interno del Loop.
post_class() Manda a video le classi associate al post corrente; questo tag può essere utilizzato all'interno o all'esterno del Loop.
is_single() E' un conditional tag che testa se la pagina corrente sia una pagina singola (tipo di post, pagina o allegato), o una pagina di archivio.
the_title() Manda a video o restituisce una stringa con il titolo del post corrente; va utilizzata all'interno del Loop.
edit_post_link() Manda a video un link alla pagina di modifica del post corrente; può essere utilizzata all'interno o all'esterno del Loop.
is_search() E' un conditional tag che testa se la pagina corrente mostra i risultati di una ricerca.
is_home() Testa se la pagina corrente è una home page strutturata come blog di notizie.
has_post_thumbnail() Testa se il post corrente dispone di un'immagine di anteprima; va utilizzata all'interno del Loop.
the_post_thumbnail() Genera il codice HTML dell'immagine di anteprima; va utilizzata nel Loop.
the_excerpt() Mostra il riassunto del post corrente; va utilizzata nel Loop.
the_content() Mostra il contenuto del post corrente; va utilizzata nel Loop.
the_tags() Genera il codice HTML dei link agli archivi dei tag associati al post corrente; deve essere utilizzato all'interno del Loop.
the_category() Genera il codice HTML dei link agli archivi delle categorie del post corrente; deve essere utilizzato all'interno del Loop.
comments_open() Testa se per il post o per la pagina corrente i commenti sono aperti.
comments_popup_link() Genera un link alla finestra di pop-up dei commenti; se questa non è attiva, genera un normale link alla lista dei commenti.

Un template per le pagine senza contenuti

Nel caso in cui non esistano articoli corrispondenti alla richiesta dell'utente, viene incluso nel documento il template content-none.php:

<header class="page-header">
	<h1 class="page-title"><?php _e( 'Nothing Found', 'seventyone' ); ?></h1>
</header>
<div class="page-content">
	<?php if ( is_home() && current_user_can( 'publish_posts' ) ) : ?>
	<p><?php printf( __( 'Publish your first post <a href="%1$s">here</a>.', 'seventyone' ), admin_url( 'post-new.php' ) ); ?></p>
	<?php elseif ( is_search() ) : ?>
	<p><?php _e( 'Nothing found. Please try again.', 'seventyone' ); ?></p>
	<?php get_search_form(); ?>
	<?php else : ?>
	<p><?php _e( 'Nothing found.', 'seventyone' ); ?></p>
	<?php get_search_form(); ?>
	<?php endif; ?>
</div><!-- .page-content -->

Nella tabella che segue sono elencati i tag cui si è fatto ricorso:

Tag Descrizione
is_home() Testa se la pagina corrente è una home page strutturata come blog di notizie.
current_user_can() Testa se l'utente collegato ha i privilegi per accedere alla risorsa corrente.
admin_url() Genera un link al pannello di amministrazione; i parametri passati come argomento permettono di stabilire la pagina specifica.
is_search() Testa se la pagina corrente mostra i risultati di una ricerca.
get_search_form() Manda a video il form di ricerca generato dal template file searchform.php.

Anche qui, per la corretta localizzazione dei testi, si è fatto ricorso alla funzione _e().

I commenti

Qualora il blog/sito Web sia aperto ai commenti degli utenti, subito dopo la generazione del contenuto dell'articolo, sarà necessario predisporre un'area dedicata in cui inserire il form e la lista dei commenti. Nel file index.php di "Seventyone", si è utilizzato il seguente blocco condizionale:

if( is_single() ) :
	comments_template();
endif;

Il conditional tag is_single() restituisce true qualora l'utente abbia richiesto un articolo o una pagina singola. Nel caso in cui la condizione sia verificata, il template tag comments_template() incorpora nel documento il template file comments.php, che sarà analizzato nel dettaglio nei prossimi capitoli.

La navigazione

Nel file index.php va predisposto anche un sistema di navigazione tra gli articoli del sito Web. Al di fuori del Loop bisognerà inserire il codice che genera i link che puntano alle pagine precedenti e successive. Nel file index.php di "Seventyone" viene invocata la funzione post_navigation():

<?php post_navigation(); ?>

Questa viene definita nel file functions.php:

function post_navigation() {
	echo '<div class="navigation">';
	echo '	<div class="next-posts">'.get_next_posts_link('&laquo; Older Entries').'</div>';
	echo '	<div class="prev-posts">'.get_previous_posts_link('Newer Entries &raquo;').'</div>';
	echo '</div>';
}

Il file index.php si conclude con altri due include tag:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Seguendo la stessa logica del tag get_header(), queste ultime due funzioni includono nel documento i template sidebar.php e footer.php. Il primo genera un'area widget; il secondo genera il fondo della pagina. I due template saranno analizzati dettagliatamente nei prossimi capitoli.

Figura 1. Ciao Mondo!
Ciao Mondo!

Conclusioni e riferimenti

Il file index.php non è costituito da uno script indipendente, ma da frammenti di codice distribuiti in diversi template file, ognuno destinato a generare una parte specifica del documento. Nei prosimi capitoli si analizzeranno nel dettaglio i template file che qui sono stati solo presentati, a cominciare dal file header.php.

Si rinvia al Codex per ogni informazione sui template tag e sulle altre funzioni del framework qui riportate. È utile approfondire gli argomenti trattati tramite le seguenti risorse:

In allegato al capitolo la prima versione del tema "Seventyone".


Ti consigliamo anche