Cómo trabajar con la API PHP de WordPress para crear tus propios temas


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

Hace unos días sentamos las bases para crear nuestros propios temas de WordPress, ahora seguimos avanzando en este interesante recurso y nos centramos en la API de PHP de WordPress, el conjunto de funciones que disponemos para acceder a las funcionalidades y comportamientos incorporados en este gestor de contenidos.

En general, llamamos API a un conjunto de funciones, librerías o código en general que nos permite interactuar con un sistema. Como  WordPress  es un gestor de contenidos, su API nos sirve para interactuar con el contenido de un sitio web y como está escrito en PHP,  las funciones disponibles están implementadas en este lenguaje de programación.

Funciones para crear un listado de posts

Nos vamos a poner manos a la obra para conocer cómo se puede acceder al listado de posts de un blog, lo que se conoce en la jerga del CMS como entradas.

Comprobar si hay posts

Una buena costumbre antes de hacer un bucle para recorrer las entradas de un sitio es preguntarnos si existen tales entradas. Para ello podemos usar una de las funciones del API, llamada have_posts().

Esta función devuelve un boleano indicando si se encontraron entradas o no. Puedes usarla de este modo.

<?php if ( have_posts() ) : ?>
 <p>
 Se han encontrado posts
 </p>
<?php else : ?>
 <p>
 No hay posts en estado "publicado"
 </p>
<?php endif; ?>

Debes apreciar en este código que estamos usando las estructuras de control de PHP más apropiadas para el trabajo en código de templates. En la documentación de PHP encuentras estas alternativas de codificación, si es que no las conoces. A lo largo de los siguientes artículos vamos a preferir escribir el código usando esta alternativa de sintaxis PHP, que aumenta la claridad cuando se mezcla PHP con HTML.

Recorrido a los posts del blog

Para acceder al listado de entradas debemos implementar un bucle, que será repetido siempre que nos queden posts que mostrar.

La función para comprobar si existen post ya la conocemos, have_posts(). Ahora vamos a conocer una nueva función, the_post(), que se usa para obtener el siguiente post del blog.

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

Tal como está este código no nos sirve de mucho, puesto que se realiza un recorrido a las entradas, pero no se hace nada con cada una de ellas. Por tanto, en cada paso de este bucle, dentro del while, debemos trabajar con el post actual de la interación, utilizando las funciones disponibles para extraer los datos de la entrada.

Escribir el título de una entrada

Para escribir el título de un post usamos la función the_title(), que escribe en la página la cadena definida en el título. Veamos el bucle anterior en el que se escribe el título de cada entrada.

<?php while ( have_posts() ) : the_post();
 the_title();
endwhile ?>

Los títulos estarán uno al lado del otro, si queremos que aparezcan seguidos de un salto de línea necesitaríamos ponerles una etiqueta para ello. Enseguida veremos cómo.

Escribir el enlace para visualizar una entrada

El enlace donde se muestra una entrada se puede acceder con otra función del API de WordPress: the_permalink().

En el siguiente código podemos ver el listado de entradas del sitio, con un enlace para el acceso a cada una de ellas.

<?php while ( have_posts() ) : the_post(); ?>
 <p>
 <a href="/blog<?php the_permalink() ?>"><?php the_title(); ?></a>
 <p>
<?php endwhile ?>

Escribir el resumen de la entrada

Si queremos mostrar en la página el resumen de la entrada actual, tenemos una función para conseguirlo, the_excerpt(). Ahora podemos ver un sencillo código de un bucle completo en el que recorremos las entradas, mostrando enlace y descripción de cada una de ellas.

<?php while ( have_posts() ) : the_post(); ?>
 <article>
 <a href="/blog<?php the_permalink() ?>"><?php the_title(); ?></a>
 <?php the_excerpt(); ?>
 </article>
<?php endwhile ?>

Con lo que hemos mostrado en este artículo y en Primeros pasos para crear temas propios de WordPress, ya podemos dar una propuesta de código para colocar en el index.php de nuestro primer template, que mostraría el listado de entradas del blog.

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Mi Primer Tema</title>
</head>
<body>
 
 <h1>
 <?php
 bloginfo();
 ?>
 </h1>
 <?php if ( have_posts() ) : ?>
 <ul>
 <?php while ( have_posts() ) : the_post(); ?>
 <li>
 <a href="/blog<?php the_permalink() ?>"><?php the_title(); ?></a>
 <?php the_excerpt(); ?>
 </li>
 <?php endwhile ?>
 </ul>
 <?php else : ?>
 <p>
 No hay posts en estado "publicado"
 </p>
 <?php endif; ?>

</body>
</html>

Como podrás comprobar si pones en marcha el template que hemos construido hasta ahora, en realidad no se están mostrando todas las entradas del sitio, sino solamente las últimas introducidas, ya que el propio WordPress está preparado para limitar los post que se visualizan en portada. Desde el administrador de WordPress, en la sección de ajustes/lectura puedes cambiar el número de entradas que deseas que aparezcan en este listado inicial.

Existen miles  de funciones dentro del API de WordPress para realizar todo tipo de tareas. Estas nos han servido para comenzar, pero encuentras mucha más información en la documentación oficial de WordPress, conocida como Codex.


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+