Cómo agregar lógica condicional a su tema de WordPress

Publicado: 2021-02-25

Crear un sitio web con WordPress proporciona una gran flexibilidad con lo que puede hacer en términos de diseño y funcionalidad. Y, a medida que profundice en el desarrollo de temas, encontrará que hay momentos en los que necesita orientar una página, categoría o tipo de publicación específico para algo especial. Ahí es donde la lógica condicional puede hacer su trabajo mucho más fácil.

La lógica condicional es una característica poderosa de los lenguajes de programación (PHP, en nuestro caso). En esencia, podemos usar el código para verificar si existe una determinada condición y luego hacer algo específico si se cumple esa condición. Un ejemplo simple de esto sería verificar si un usuario se encuentra actualmente en la página de inicio de nuestro sitio. Usando la lógica condicional, podríamos optar por cargar un control deslizante u otro contenido especial en esa situación.

Con respecto a WordPress, hay una serie de etiquetas condicionales útiles integradas en el software que nos permiten probar todo tipo de escenarios. Están bien documentados y le permiten brindar un mayor nivel de funcionalidad a su sitio.

Hoy, veremos algunas de las etiquetas condicionales más utilizadas y cómo podría implementarlas en su propio sitio.

Una nota sobre el uso de etiquetas condicionales

Las etiquetas condicionales son fragmentos de código PHP y deben incluirse en el tema activo de su sitio. Hay varios lugares en los que puede usar la lógica condicional dentro de un tema.

Si aún no lo ha hecho, es una buena idea familiarizarse con la jerarquía de plantillas de WordPress para obtener una explicación de cómo funcionan los archivos de temas.

Y, antes de intentar implementar código nuevo en un sitio en vivo, es mejor configurar un entorno de desarrollo (puesta en escena) para probar las cosas primero. Recuerde que un movimiento en falso con PHP puede darle a su sitio la temida "Pantalla blanca de la muerte". Así que tenga mucho cuidado con las pruebas antes de trabajar en un sitio en vivo.

es casa()

Este causa una gran confusión entre los desarrolladores. Al mirar la etiqueta, asumiría que is_home() se usaría para verificar la página de inicio de su sitio. Ese no es el caso.

En realidad, busca la página asignada como su página de Publicaciones, que se establece en Configuración> Lectura dentro del panel de control de WordPress. De forma predeterminada, WordPress usa su página de inicio para enumerar las publicaciones, pero la mayoría de los sitios tienden a usar una página de inicio estática en su lugar.

Entonces, por ejemplo, si ha asignado una página llamada "Blog" como su página de Publicaciones, eso es lo que is_home() .

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

es_primer_pagina()

Por el contrario, is_front_page() busca cualquier página que esté configurada como la página de inicio de su sitio, independientemente de si es estática o no. Es cierto que esto no es lo más obvio del mundo cuando estás aprendiendo a crear tus propios temas. Pero saber qué etiqueta usar es vital.

Lo bueno de esta etiqueta en particular es que, incluso si tuviera que asignar una página diferente como su página de inicio más adelante, seguirá apuntando al lugar correcto. Hay formas más explícitas de orientar las páginas, pero esta lo mantiene cubierto en caso de un cambio.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() y is_page()

Cada una de estas etiquetas realiza una doble función. is_single() busca si la URL actual es una publicación. Podría ser una publicación de blog estándar, un archivo adjunto o pertenecer a un tipo de publicación personalizada.

De manera similar, is_page() devolverá verdadero si la URL actual es una página. De forma predeterminada, ambas etiquetas apuntan a cualquier contenido que se encuentre bajo el paraguas de una página o publicación. Este es un hilo común entre muchas etiquetas condicionales.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Pero también puede aprovechar estas etiquetas para apuntar a una publicación o página específica agregando una ID o slug.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

El uso de una matriz le permitirá orientar múltiples piezas de contenido.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() y has_term()

Las taxonomías juegan un papel importante en cómo se organiza el contenido en un sitio. Dos de las más comunes son las categorías y las etiquetas, que tienen sus propias etiquetas condicionales. Pero WordPress también nos permite crear nuestras propias taxonomías.

Por ejemplo, si su sitio contiene reseñas de música, es posible que tenga una taxonomía llamada "Género". A partir de ahí, podría haber enumerado géneros musicales específicos dentro de esa taxonomía, como "Rock", "Hip-Hop" y "Jazz".

is_tax() apunta a una página de archivo de taxonomía. Siguiendo con nuestro ejemplo de reseña musical, esta etiqueta se activará (entrará en vigor) cuando estemos en la página de archivo de cada uno de los géneros específicos.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() se utiliza para orientar la publicación actual en función de la taxonomía a la que pertenece. Esto es útil si, por ejemplo, queremos agregar un gráfico especial para publicaciones en cada género de música en nuestro sitio.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

es_página_plantilla()

Una vez que esté familiarizado con la jerarquía de plantillas de un tema, es posible que desee crear sus propias plantillas de página personalizadas. is_page_template() le permite apuntar a la plantilla de página actual que se está utilizando (independientemente de si es personalizada o no). Puede verificar si se está utilizando alguna plantilla de página o buscar una específica.

Sin embargo, debe tener cuidado al buscar una plantilla de página específica. Dado que esta etiqueta verifica la existencia de un nombre de archivo, el condicional podría dejar de funcionar si se cambia el nombre de esa plantilla. Tendrá que actualizar su código para reflejar cualquier cambio de nombre de archivo.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Todas las condiciones cumplidas

Si bien esto fue solo una breve introducción de cómo se puede usar la lógica condicional, con suerte abrirá su apetito por aprender más.

Una vez que domines los condicionales, podrás personalizar tu sitio de formas que de otro modo serían casi imposibles.

Pueden brindarle un control detallado sobre la apariencia y el diseño de su tema mientras se benefician de todas las ventajas de utilizar un CMS.