Saltar al contenido

La guía definitiva para las etiquetas condicionales de WordPress

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 usar esta etiqueta para mostrar un mensaje a los visitantes de nuestro blog. Este mensaje no se mostrará en 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.

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 otra pieza 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 es probable que veas utilizadas en tus temas de WordPress.

  • is_home () – Comprueba si se está mostrando el índice de publicación del blog. Esta puede o no ser tu página de inicio también.

  • is_front_page () – Comprueba si se está mostrando su página de inicio. Esto funciona si 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.

  • is_single () – Comprueba si se está mostrando algún tipo de publicación individual (excluyendo los archivos adjuntos).

  • is_attachment () – Comprueba si se muestra un archivo adjunto.

  • is_page () – Comprueba si se está mostrando una página.

  • is_singular () – Comprueba si se está mostrando una sola publicación, archivo adjunto o página. True se devuelve si se cumple alguna de esas condiciones.

  • is_category () – Comprueba si se está mostrando 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 está mostrando un archivo de etiquetas.

  • is_author () – Comprueba si se está mostrando una página de archivo de autor.

  • is_archive () – Comprueba si se está mostrando 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 pegajosa.

  • is_multi_author () – Comprueba si más de un autor ha publicado publicaciones en el sitio web. True se devuelve si dos o más personas han publicado publicaciones. Si solo un autor ha publicado publicaciones, o si ninguna publicación ha sido publicada, 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 fecha.

  • is_year () – Comprueba si es una página de archivo basada en un año.

  • is_month () – Comprueba si es una página de archivo basada en un mes.

  • is_day () – Comprueba si es una página de archivo basada en el día.

  • is_time () – 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ó, volvería a ser verdadera. False se devolverá si ambas publicaciones se publicaron el mismo día.

Encontrará etiquetas condicionales como is_home () y is_single () con frecuencia, sin embargo, no necesita recordar 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 qué condiciones deben cumplirse antes de que algo se lleve a cabo. 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 cualquier 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 acerca y desea personalizar la página acerca 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, debe 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' ) ) {

La babosa de la página también se puede utilizar. Como recordará, la babosa de la página es el identificador único con nombre al final de la URL. Si la URL de su página acerca de www.yourwebsite.com/about-our-company/, la babosa de la página sería sobre-nuestra-compañía.

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 podría 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, sobre la página, etc.).

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

Otro operador lógico que es muy útil es el operador AND &&. Esto se usa cuando desea que dos o más condiciones se cumplan antes de que algo se accione. La siguiente instrucción if verifica si una página es tanto una página de archivo como si está clasificada en la categoría de noticias. En las páginas de categorías de noticias, se mostrará el mensaje de bienvenida. Nada se mostrará en otras categorías.

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, solo se muestra una parte de la función a continuación.

La instrucció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 a continuación). 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 entidad única debido al operador OR. Es por eso que están envueltos dentro de corchetes.

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

¡Otro operador lógico PHP que puede usar es el operador no! 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 cuán sencillo es esto en la práctica. Mostrará una imagen en cada página de su sitio web, excepto las páginas de archivo.


  


Hasta ahora, hemos visto ejemplos básicos de etiquetas condicionales que se usan cuando algo se actúa o no se actúa (es decir, si A es verdadero, haga B). En la práctica, generalmente hay otra acción que hacer si no se cumple una condición. Además, puede haber varias condiciones que se pueden cumplir, con una respuesta diferente para 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: utilizamos declaraciones else y elseif. El siguiente código muestra cómo se puede lograr esto.


  




















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

Las declaraciones de Elseif también se usan 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 varias etiquetas condicionales adicionales disponibles. Los desarrolladores utilizan muchos de estos 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 publicación es jerárquico.

  • is_post_type_archive () – Comprueba si se está mostrando 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.

  • comments_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 está mostrando un error 404.

  • is_paged () – Comprueba si la página que estás viendo actualmente es una página paginada distinta de la página uno. Las publicaciones y páginas se paginan cuando usa la etiqueta rápida nextpage en su contenido para dividir publicaciones grandes.

  • is_trackback () – Comprueba si se está utilizando un trackback.

  • is_admin () – Comprueba si el usuario ha iniciado sesión en el área del administrador. No se utiliza para verificar si un usuario tiene privilegios de administrador, solo si está conectado al panel de control de WordPress.

  • is_page_template () – Comprueba si la página que se está viendo está usando 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 publicaciones específicas.

  • has_nav_menu () – Comprueba si una ubicación de menú tiene un menú asignado. Los desarrolladores de temas lo usan para mostrar algo en caso de que el usuario no haya agregado un menú.

  • in_the_loop () – Comprueba si la persona que llama todavía está dentro del bucle de WordPress.

  • is_active_sidebar ($ index): comprueba si se está utilizando una barra lateral determinada.

  • is_multisite () – Comprueba si se admite multisitio.

  • is_main_site () – Comprueba si un sitio múltiple es el sitio principal en la red.

  • is_super_admin () – Comprueba si un usuario es un super administrador dentro de la red.

  • is_plugin_active ($ plugin): comprueba si un complemento está activado.

  • is_child_theme () – Comprueba si se está utilizando un tema hijo.

  • current_theme_supports ($ feature): comprueba si un tema admite una función específica, como formatos de publicación o imágenes destacadas.

También verifique: Cómo eliminar las 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 comprenda las declaraciones else, declaraciones elseif y operadores lógicos como AND, OR y Not; podrá abordar cualquier función condicional.

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

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