Siempre que empecemos con un theme para wordpress necesitaremos crear un archivo index.php. Este archivo contendrá referencias a las demás plantillas como el header.php o el footer.php y un concepto llamado the Loop o el bucle.
The Loop lo que hace es mostrar todas las entradas contenidas en la base de datos del wordpress.
Finalmente la estructura del index.php sería algo así como poner primero la referencia al header.php, poner el The Loop, luego el sidebar.php y finalmente el footer.php.
Ejemplo de index.php
get_header();
if (have_posts()) :
while (have_posts()) :
the_post();
the_content();
endwhile;
endif;
get_sidebar();
get_footer();
?>
Ese index.php tiene el get_header(); que llama a la plantilla header.php. La condición if y el while es el considerado Loop, que va mostrando las entradas si las hay. El get_sidebar(); llamará a la plantilla sidebar.php y el get_footer(); a la plantilla footer.php.
Explicaremos con detenimiento el código correspondiente al Loop:
if (have_posts()) :
while (have_posts()) :
the_post();
the_content();
endwhile;
endif;
?>
if(have_posts()): lo que hace es comprobar si hay post en la base de datos de wordpress. Si las hay lanza el bucle while(have_posts()):the_posts(); lo que hace es enseñar las entradas si éstas están disponibles.
the_post(); lo que hace es mostrar la actual entrada de la iteración y the_content, el contenido de dicha entrada.
Vamos a complicarlo un poco para dar funcionalidad. Existen las funciones the_title() que indica el título de la entrada y the_permalink(); que da la url de la entrada dentro del blog. Vamos a integrarlo de forma útil en nuestro loop.
if (have_posts()) :
while (have_posts()) :
the_post();
?><a href="<?php the_permalink(); ?>">
<?php the_title();</a><?php
the_content();
endwhile;
endif;
?>
Ahora para cada entrada generará un enlace en el título que lleve al permalink de la entrada en el blog.
Podemos poner más cosas dentro del Loop, como por ejemplo la fecha y el autor con las siguientes funciones: the_time(); y the_author();
if (have_posts()) :
while (have_posts()) :
the_post();
?><a href="<?php the_permalink(); ?>">
<?php the_title();</a><?php the_time();
the_author();
the_content();
endwhile;
endif;
?>
Es posible que también querramos tener un enlace con los comentarios y el número de comentarios. para eso ponemos comments_popup_link();
<?php comments_popup_link('No Comments »', '1 Comment »',
'% Comments »'); ?>
Muchos de nosotros tendremos elegido la opción de mostrar sólo 10 entradas por página, por lo que necesitaremos la navegación típica de entradas más antiguas o las más recientes. Para ello contamos con la función posts_nav_link(); e iría implementada de la siguiente forma:
<div class="navigation"> <div class="alignleft">
<?php posts_nav_link('','','« Entradas antiguas') ?></div>
<div class="alignright">
<?php posts_nav_link('','Siguientes Entradas »','') ?></div>
</div>
En la siguiente entrada destinada a los themes de wordpress hablaré con más detenimiento del header.php. Si quieren profundizar en el index.php pueden consultar los siguientes enlaces:
