La guía definitiva para las etiquetas condicionales de WordPress

Hola, me llamo Pablo y esta vez os traigo un nuevo post.

Las etiquetas condicionales de WordPress son una gran característica de WordPress que le permite controlar qué contenido se muestra en una página. Hay etiquetas condicionales para diferentes áreas de su sitio web, como su página de inicio, publicaciones de blog y páginas. Esto le permite cambiar lo que se muestra en su sitio web. Por ejemplo, puede cambiar el logotipo de su sitio web en diferentes áreas de su sitio web.

En este tutorial, explicaré qué etiquetas condicionales están disponibles para usted y le mostraré cómo se pueden usar en temas y complementos.

Cómo funcionan las etiquetas condicionales de WordPress

Las etiquetas condicionales son un tipo de datos booleanos que solo pueden devolver verdadero o falso. La etiqueta is_home (), por ejemplo, se refiere al índice del blog. Podemos utilizar esta etiqueta para mostrar un mensaje a los visitantes de nuestro blog. Este mensaje no se mostrará en ningún otro lugar.

El código es sencillo. Todo lo que estamos haciendo a continuación es verificar si la página que se muestra es la página de índice del blog. Si es así, mostramos nuestro mensaje.

<?php         
 
if ( is_home()) 

echo "Welcome to Our Blog!!";



?>

Lo anterior es un ejemplo básico de lo que se puede lograr usando etiquetas condicionales, sin embargo, eso es esencialmente todo lo que hay que hacer. Simplemente está comprobando el tipo de página que se muestra. Dependiendo de si el resultado es verdadero o falso, se activa otro fragmento de código.

Antes de ver más ejemplos de cómo se pueden usar las etiquetas condicionales, veamos primero las etiquetas condicionales populares que probablemente verá que se usan en sus temas de WordPress.

  • es casa() – Comprueba si se muestra el índice de la publicación del blog. Esta puede ser o no también su página de inicio.
  • is_front_page () – Comprueba si se muestra su página de inicio. Esto funciona ya sea que la configuración de la página principal esté configurada para mostrar publicaciones de blog (es decir, índice de blog) o una página estática.
  • es soltera() – Comprueba si se muestra algún tipo de publicación única (sin incluir archivos adjuntos).
  • is_attachment () – Comprueba si se muestra un archivo adjunto.
  • is_page () – Comprueba si se muestra una página.
  • is_singular () – Comprueba si se muestra una sola publicación, archivo adjunto o página. Se devuelve verdadero si se cumple alguna de esas condiciones.
  • is_category () – Comprueba si se muestra una página de archivo de categoría.
  • is_search () – Comprueba si se muestra una página de resultados de búsqueda.
  • is_tag () – Comprueba si se muestra un archivo de etiquetas.
  • is_author () – Comprueba si se muestra una página de archivo de autor.
  • is_archive () – Comprueba si se muestra algún tipo de página de archivo, incluidos los archivos de categoría, etiqueta, fecha y autor.
  • is_sticky () – Comprueba si una publicación se ha definido como pegajoso.
  • is_multi_author () – Comprueba si más de un autor ha publicado publicaciones en el sitio web. Se devuelve verdadero si dos o más personas han publicado publicaciones. Si solo un autor ha publicado publicaciones, o si no se ha publicado ninguna publicación, se devuelve falso.

Hay seis etiquetas condicionales basadas en el tiempo que también le resultarán útiles. Estas etiquetas se refieren a páginas de archivo de fechas. Por ejemplo, la URL http://www.yourwebsite.com/2013/12/ es una página de archivo basada en un mes.

Si alguna de las siguientes etiquetas condicionales devuelve verdadero, is_archive () también sería verdadero.

  • is_date () – Comprueba si es una página de archivo basada en fechas.
  • es_año () – Comprueba si es una página de archivo basada en el año.
  • is_month () – Comprueba si es una página de archivo mensual.
  • es día() – Comprueba si es una página de archivo basada en días.
  • es hora() – Comprueba si es una página de archivo basada en el tiempo.
  • is_new_day () – Comprueba si hoy es un nuevo día. Si la publicación actual se publicó en un día diferente de la publicación anterior que se publicó, devolvería verdadero. Se devolverá falso si ambas publicaciones se publicaron el mismo día.

Se encontrará con etiquetas condicionales como is_home () e is_single () con frecuencia, sin embargo, no es necesario que recuerde todas estas etiquetas condicionales. La mayoría de los usuarios de WordPress se refieren al códice de WordPress para la etiqueta condicional apropiada cuando necesitan configurar una función condicional.

Ejemplos de etiquetas condicionales

Muchas etiquetas condicionales permiten pasar parámetros a la función. Esto le da mucho más control sobre las condiciones que deben cumplirse antes de que se actúe algo. is_page () es un buen ejemplo de esto. La etiqueta le permite verificar si la página que se muestra es una página. is_page () devolverá un valor de verdadero si se muestra alguna página, sin embargo, debe especificar el parámetro $ page si desea ser más específico. El parámetro $ page puede ser el ID de la página, el título de la página o el slug de la página.

Consideremos un sitio web normal que tiene una página de información y desea personalizar la página de información de manera diferente a todas las demás páginas. Por ejemplo, puede mostrar una fotografía de su empresa en la parte superior de la barra lateral o puede mostrar información adicional en la parte inferior de la página Acerca de.

Para hacer esto, necesita definir el parámetro $ page. Si el ID de la página era 10, podría abrir su declaración condicional con algo como esto:

if ( is_page(10) ) {

También se puede especificar una página específica pasando el título de la página a la función.

if ( is_page( 'About Us' ) ) {

También se puede utilizar la página slug. Como recordará, la página slug es el identificador con nombre único al final de la URL. Si la URL de su página acerca de era www.yourwebsite.com/about-our-company/, la barra de página sería about-our-company.

if ( is_page( 'about-our-company' ) ) {

Algunas etiquetas condicionales, como is_page (), también pueden pasar parámetros en una matriz. La siguiente declaración condicional devolverá un valor verdadero si alguna de las condiciones es verdadera.

if ( is_page( array( 10, 'About Us', 'about-our-company' ) ) ) {

Es común que los desarrolladores establezcan más de una condición cuando usan etiquetas condicionales. Volvamos a la simple tarea de mostrar un mensaje de bienvenida a los visitantes del blog. Esto es algo que un sitio web corporativo puede querer agregar a su área de blog, pero no a otras áreas de su sitio web (por ejemplo, página de inicio, página de contacto, página de información, etc.).

Pueden hacer esto usando las etiquetas condicionales is_home () e is_single (); que representan el índice del blog y las publicaciones individuales respectivamente. Para mostrar un mensaje en ambas áreas, debe utilizar el operador lógico OR ||. Esto se ilustra en el código siguiente. La instrucción if inicial verifica si la página es el índice del blog o una sola publicación. Si alguno es cierto, se muestra el mensaje.

<?php         
 
if ( is_home() || is_single() ) 

echo "Welcome to Our Blog!!";



?>

Otro operador lógico muy útil es el operador AND &&. Esto se utiliza cuando desea que dos o más condiciones sean verdaderas antes de que se actúe algo. La siguiente declaración if comprueba si una página es una página de archivo y está categorizada en la categoría de noticias. En las páginas de la categoría de noticias, se mostrará el mensaje de bienvenida. No se mostrará nada en otras categorías.

<?php 

if ( is_archive() && is_category( 'News' ) ) 
  
echo "Welcome to the News Archives";



?>

Los operadores AND y OR se pueden combinar. El siguiente ejemplo está tomado de la plantilla functions.php del tema predeterminado de WordPress Twenty Thirteen. La función se utiliza para mostrar el título de la página en el navegador; sin embargo, a continuación solo se muestra una parte de la función.

La declaración if devuelve un valor verdadero si hay una descripción del sitio y el usuario está viendo el índice del blog o la página de inicio. La descripción del sitio se puede ingresar a través del campo de lema en su área de configuración general. Si completa este campo, en el índice de su blog y en la página de inicio, la barra de título mostrará “Título del sitio | Descripción del sitio ”(nota: el separador se muestra usando la cadena $ sep en el código siguiente). Si no lo hace, la barra de título mostrará «Título del sitio».

Como puede ver, is_home y _is_front_page se ven como una sola entidad debido al operador OR. Por eso están envueltos entre paréntesis.

if ( $site_description && ( is_home() || is_front_page() ) )
		$title = "$title $sep $site_description";

Otro operador lógico de PHP que puede utilizar es el operador not!. Esto es más práctico de usar en muchas circunstancias. Por ejemplo, digamos que desea mostrar una fotografía en todas sus páginas excepto en sus archivos. No es necesario configurar una declaración condicional larga que pregunte «¿Es esta la página de inicio, es una publicación única, es una página …». Es más práctico simplemente preguntar «¿No es esta una página de archivo?».

Para hacer esto, simplemente agregue un signo de exclamación antes de la etiqueta condicional. El siguiente código muestra lo sencillo que es esto en la práctica. Mostrará una imagen en cada página de su sitio web, excepto en las páginas de archivo.

<?php 

if ( !is_archive() )  ?>
  
<img src="photo.jpg" />

<?php 



?>

Hasta ahora, hemos visto ejemplos básicos de etiquetas condicionales que se utilizan cuando algo se activa o no se activa (es decir, si A es verdadera, hazlo B). En la práctica, suele haber otra acción que realizar si no se cumple una condición. Además, puede haber varias condiciones que se pueden cumplir, con una respuesta diferente a cada una.

En lugar de escribir muchas declaraciones individuales para esto, es práctico usar declaraciones else y elseif. Esto le permite un mayor grado de control sobre lo que se muestra en su sitio web.

Podemos mostrar esto usando un ejemplo. Digamos que desea mostrar un logotipo diferente en su sitio web en diferentes áreas de su sitio web. ¿Cómo harías esto? La respuesta es simple: usamos declaraciones else y elseif. El siguiente código muestra cómo se puede lograr esto.

<?php 

if ( is_home() || is_front_page() )  ?>
  
<img src="logo-home.png" />

<?php 

 elseif ( is_category() )  ?>

<img src="logo-category.png" />

<?php 

 elseif ( is_single() )  ?>

<img src="logo-blog-post.png" />

<?php 

 elseif ( is_page() )  ?>

<img src="logo-page.png" />

<?php 



else  ?>

<img src="logo-general.png" />

<?php 



?>


Dependiendo de qué área del sitio web esté viendo un visitante, se mostrará uno de los cinco logotipos con el código anterior. Es un ejemplo básico que ilustra la facilidad con la que se pueden utilizar las declaraciones else y elseif para controlar muchas áreas diferentes de su sitio web.

Las declaraciones Elseif también se utilizan en otras partes de WordPress. La mayoría de las plantillas functions.php las usan y muchos temas de WordPress las usan para cambiar cómo se muestra el título de su sitio web en los navegadores.

Más etiquetas condicionales

Hay una serie de etiquetas condicionales adicionales disponibles. Los desarrolladores utilizan muchos de estos en temas y complementos.

A continuación se muestra una lista de algunas de las otras etiquetas condicionales que están disponibles para usted.

  • is_tax () – Comprueba si se muestra una página de archivo de taxonomía personalizada.
  • has_term () – Comprueba si la publicación actual tiene uno de los términos especificados.
  • taxonomy_exists () – Comprueba si existe el nombre de la taxonomía.
  • post_type_exists () – Comprueba si existe un tipo de publicación.
  • is_post_type_hierarchical ($ post_type) – Comprueba si el tipo de puesto es jerárquico.
  • is_post_type_archive () – Comprueba si se muestra la página de archivo de un tipo de publicación específico.
  • is_comments_popup () – Comprueba si la ventana emergente de comentarios está abierta.
  • comentarios_open () – Comprueba si se permiten comentarios para la publicación o página actual.
  • pings_open () – Comprueba si se permiten pings para la publicación o página actual.
  • is_feed () – Comprueba si la consulta actual es para un feed.
  • is_404 () – Comprueba si se muestra un error 404.
  • is_paged () – Comprueba si la página que está viendo actualmente es una página paginada que no sea la página uno. Las publicaciones y las páginas se paginan cuando usa la etiqueta rápida de página siguiente en su contenido para dividir publicaciones grandes.
  • is_trackback () – Comprueba si se está utilizando un trackback.
  • is_admin () – Comprueba si el usuario está registrado en el área de administrador. No se utiliza para verificar si un usuario tiene privilegios de administrador, solo si está conectado al panel de WordPress.
  • is_page_template () – Comprueba si la página que se está viendo utiliza una plantilla de página. Se puede definir una plantilla de página específica, si es necesario.
  • is_preview () – Comprueba si una publicación de blog se está viendo en modo borrador.
  • has_excerpt () – Comprueba si la publicación actual tiene un extracto. Se pueden definir puestos específicos.
  • has_nav_menu () – Comprueba si una ubicación de menú tiene un menú asignado. Esto lo utilizan los desarrolladores de temas para mostrar algo en caso de que el usuario no haya agregado un menú.
  • en el lazo() – Comprueba si la persona que llama todavía está dentro del bucle de WordPress.
  • is_active_sidebar ($ índice) – Comprueba si se está utilizando una barra lateral determinada.
  • is_multisite () – Comprueba si se admite multisitio.
  • is_main_site () – Comprueba si un multisitio es el sitio principal de la red.
  • is_super_admin () – Comprueba si un usuario es un superadministrador dentro de la red.
  • is_plugin_active ($ complemento) – Comprueba si un complemento está activado.
  • is_child_theme () – Comprueba si se está utilizando un tema hijo.
  • current_theme_supports ($ función) – Comprueba si un tema admite una función específica, como formatos de publicación o imágenes destacadas.

Consulte también: Cómo eliminar taxonomías predeterminadas.

Las etiquetas condicionales son un concepto importante de WordPress. Debido a lo útiles que son, hay pocos temas de WordPress diseñados sin ellos. Una vez que entienda las declaraciones else, las declaraciones elseif y los operadores lógicos como AND, OR y Not; podrá abordar cualquier función condicional.

Espero que esta guía te haya ayudado a aprender a usar etiquetas condicionales de WordPress en tus temas.

Si te gustó este artículo, únete a ThemeLab en Gorjeo.


Sin más, me despido.

Deja un comentario