Capitolo 3: index.php

programmare temi wordpress

Nel file index metteremo tutto il corpo della pagina internet, se si hanno dei file alternativi si possono aggiungere con le rispettive chiamate.

Ci sono varie pagine che vengono lette prima di index e che hanno la stessa funzione. Questi file che per gerarchia vengono cercate prima sono:

  • single-post.php e single-posttype
  • single.php
  • singular.php
  • index.php

Esempio, per caricare un’intestazione diversa sulla prima pagina, per caricare un header “front”, bisogna avere creato un file php chiamato header-front.php. La funzione get_header( ‘front’ ); cercherà un file chiamato ‘header’, che abbia un trattino ‘-‘(meno) e che dopo ci sia scritto ‘front’. (front può essere qualsiasi altro nome purchè venga rispettata la semantica)

<?php 
if ( is_front_page() ) :
    get_header( 'front' );
else :
    get_header();
endif; ?>

Il loop per scorrere i post:

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

        <article id="post-<?php the_ID(); ?>"  <?php post_class(); ?>>

          <header class="entry-header">

            <?php the_title( '<h1>', '</h1>' ); ?>

          </header>

          <div class="entry-content">

            <?php the_content(); ?>

          </div>

        </article>

      <?php endwhile; else : ?>

        <article id="post-<?php the_ID(); ?>"  <?php post_class(); ?>>

          <header class="entry-header">

            <h1><?php esc_html_e( '404', 'text-domain' ); ?></h1>

          </header>

          <div class="entry-content">

            <p><?php esc_html_e( 'Sorry! No content found.', 'text-domain' ); ?></p>

          </div>

        </article>

      <?php endif; ?>

L’articolo <article> può essere inserito in un file content.php e può essere letto tramite la funzione get_template_part(‘content’); e nel caso un contenuto alternativo creare un file content-alternativo.php e richiamarlo con get_template_part(‘directory-percorso/content’, ‘alternativo’);
esempio:

file index.php loop:

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

        <?php get_template_part( 'template-parts/content' ); ?>

      <?php endwhile; else : ?>

        <?php get_template_part( 'template-parts/content', 'none' ); ?>

      <?php endif; ?>

file template-parts/content.php

<article id="post-<?php the_ID(); ?>"  <?php post_class(); ?>>

  <header class="entry-header">

    <?php the_title( '<h1>', '</h1>' ); ?>

  </header>

  <div class="entry-content">

    <?php the_content(); ?>

  </div>

</article>

file template-parts/content-alternativo.php

<article id="post-<?php the_ID(); ?>"  <?php post_class(); ?>>

  <header class="entry-header">

    <h1><?php esc_html_e( '404', 'text-domain' ); ?></h1>

  </header>

  <div class="entry-content">

    <p><?php esc_html_e( 'Sorry! No content found.', 'text-domain' ); ?></p>

  </div>

</article>

Commenti

Per inserire la possibilità di commentare e di leggere i commenti, si deve aggiungere alla cartella principale del tema il file comments.php e usare lafunzione comments_template(); all’interno del loop

// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
	comments_template();
endif;

tags condizionali esempi

sidebar

Per visualizzare la siebar utilizzare la funzione get_sidebar();
esempio per visualizzare delle differenti sidebar in differenti pagine:

<?php
if ( is_home() ) :
  get_sidebar( 'home' );
elseif ( is_404() ) :
  get_sidebar( '404' );
else :
  get_sidebar();
endif;
?>

per visualizzare il piè di pagina utilizzare la funzione get_footer();

Un esempio di footer personalizzato con passaggi di parametri:

creare un file footer-nomeAlternativo.php

<?php echo $args['name']; ?> <br> <?php echo $args['location']; ?>

E nell’index.php:

<?php
get_footer('nomeAlternativo',array('name'=>'passaggio del nome','location'=>'Italia'));
?>

SCRIVI UN COMMENTO