Uso de etiquetas condicionales en WordPress

Publicado: 2012-12-27

Echemos un vistazo a cómo ejecutar funciones personalizadas en sus temas en diferentes ubicaciones de enlace en función de que se cumplan ciertas condiciones y devuelvan sí.

Si usa un marco de tema premium como Génesis, tendrá acceso a una guía de usuario.

La guía del usuario generalmente contiene fragmentos de código que contienen funciones personalizadas.

Nota: si no está utilizando un marco de tema premium, deberá crear las funciones personalizadas usted mismo o encontrar un fragmento de código que funcione con su tema.

Estas funciones personalizadas se pueden ejecutar en ubicaciones de temas específicos utilizando los ganchos de acción de sus temas.

Todo lo que necesita hacer es pegar el fragmento de código en su archivo child themes functions.php para personalizar las funciones de su tema.

Cada marco de trabajo temático usa ganchos diferentes, sin embargo, prácticamente hacen lo mismo, solo reciben nombres diferentes como:

 thesis_after_post genesis_after_post woo_post_after

Todos estos 3 ejemplos se ejecutan después de que finaliza la publicación, donde es posible que desee agregar un área de widget, un banner o un cuadro de opción de correo electrónico con botones para compartir/seguir en redes sociales.

Pero, ¿qué sucede si solo desea que la función personalizada se ejecute en una ubicación de enlace específica en función de ciertas condiciones? Por ejemplo:

  • Solo en publicaciones individuales: is_single()
  • Solo en publicaciones en una categoría específica: is_category()
  • Solo en una página de archivo: is_archive()
  • Solo en la página de inicio: is_home()

Agregar una etiqueta condicional a su función personalizada que se ejecuta en la ubicación del gancho de su tema le permite ejecutar la función solo si la condición devuelve sí.

Nota: Es posible que desee probar estas etiquetas con los fragmentos de código para sus funciones personalizadas en una configuración local antes de agregar el código a un sitio en vivo.

Una vez que se sienta cómodo usando funciones personalizadas y comprenda dónde y cómo funcionan los ganchos de acción de sus temas, puede ir un paso más allá usando etiquetas condicionales o declaraciones condicionales, como las llaman algunos desarrolladores.

Entonces, ¿cómo uso declaraciones condicionales?

Ejemplos de etiquetas condicionales

Aquí hay algunas etiquetas condicionales comunes utilizadas por los diseñadores de WordPress, así como por los desarrolladores de temas y complementos.

 is_home() is_category() is_single() is_page()

En primer lugar, echemos un vistazo al uso de etiquetas condicionales basadas en múltiples declaraciones.

es_soltero y en_categoría

 if (is_single() && in_category('134'))
 if (is_single() && in_category('web-design'))

Ambos fragmentos de código hacen exactamente lo mismo y contienen 2 etiquetas condicionales.

El primero usa la identificación de categoría de 134 y el segundo usa la categoría slug 'web-design'.

Cualquier función que incluya con este código solo se ejecutará en publicaciones individuales en la categoría que contiene una identificación de publicación de 134 o página slug 'diseño web'. Esta es claramente la categoría de diseño web.

Parámetros

Como puede ver en el ejemplo anterior, puede usar diferentes parámetros con etiquetas condicionales como:

  1. ID del mensaje
  2. Título de la entrada
  3. Publicar babosa

Algunas etiquetas condicionales como la etiqueta is_home() no exceptúan ningún parámetro probablemente porque en realidad no los necesitan.

es_pagina

 if (is_page('4289'))
 if (is_page('contact'))

Ambas etiquetas condicionales hacen exactamente lo mismo.

El primero usa la identificación de la publicación de la página 4289 y el segundo el nombre de la página y el slug 'contacto'.

Las funciones que incluya con esta etiqueta solo se ejecutarán en la página de contacto.

Etiquetas condicionales de la página de inicio

Los usos más comunes para usar las etiquetas is_home serían mostrar algo solo en la página de inicio o excluir la página de inicio de la función.

es casa

 if (!is_home()

Este código contiene el ! antes de la etiqueta condicional home_page, por lo que excluye la página de inicio de la función.

 if (is_home()

Este código crea una condición que solo se aplica a la página de inicio.

Ejemplo de trabajo

Si copia y pega el siguiente código usando un editor de código, en su archivo de funciones de temas secundarios, encontrará que imprime texto después del encabezado solo en publicaciones individuales.

 add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }

El código anterior usa la posición de gancho genesis_entry_footer con la etiqueta condicional is_singular('post') e imprime el texto después del contenido solo en publicaciones individuales. Este es un ejemplo clásico que muestra cómo usar etiquetas condicionales en una función personalizada con los ganchos de acción de sus temas.

Etiquetas condicionales con arreglos

También puede agregar una matriz a su declaración condicional.

es_pagina (matriz

 if (is_page(array('contact','37290'))

Puede agregar más páginas a esta matriz simplemente incluyéndolas dentro de esta matriz separadas por una coma.

Esta función solo se ejecutará en la página de contacto y la página que contiene una identificación de publicación de 37290.

Salida de texto/HTML

Si simplemente desea mostrar texto o HTML, puede agregar una declaración condicional a los ganchos de acciones de sus temas. La forma más fácil de hacer esto sería pegar la etiqueta condicional con su HTML usando un complemento de enlace.

 if ( ! is_home()) { echo'Your Text Here'; }

Tomemos una función común con gancho de acción y agreguemos una etiqueta condicional.

Etiquetas condicionales en Génesis

Puede agregar fácilmente uno de los fragmentos de código del tema de Génesis para usarlo en los temas de StudioPress e incluir una etiqueta condicional con el código.

 /** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }

Este código le permite al usuario diseñar la página de categoría de video usando una clase personalizada.

El parámetro utilizado es el slug del video-tutorial; sin embargo, puede usar el post.id o el título en su etiqueta condicional.

Etiquetas condicionales en tesis

Tomemos una función personalizada de la guía de usuarios de temas de bricolaje y agreguemos una declaración condicional.

 function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );

Esto ocultará el menú de navegación solo en la página de contacto.

Podríamos usar diferentes parámetros para la página de contacto, incluido el slug de la página, la identificación de la publicación o el nombre de la página.

¿Dónde poner el código?

Si está utilizando un marco de tema premium, puede pegar el código en el archivo functions.php de su hijo.

Todos estos marcos ofrecen un complemento o administrador de enlace que le permite pegar el código en la ubicación del enlace donde desea que se ejecute el código en función de sus etiquetas condicionales.

  • Gerente de gancho Woo
  • Ganchos simples Génesis
  • Ganchos de tesis, Headway y WordPress

Claramente, no necesitará incluir el gancho de acción en su código si usa un administrador de ganchos.

Otra opción es pegar las etiquetas condicionales directamente en los archivos de plantilla de sus temas en la ubicación en la que desea ejecutar la función según sus condiciones. Esta no es la mejor práctica, ya que perderá el código cuando actualice el tema.

Siempre es la mejor práctica para crear un tema secundario y hacer modificaciones a sus archivos de plantilla allí. Mejor aún, use las funciones personalizadas que su desarrollador de temas ya ha creado y pegue el código en el archivo de funciones de su tema secundario con sus etiquetas condicionales, una vez que las pruebas demuestren que funciona.

Etiquetas y ejemplos condicionales de WordPress

Encontrará una lista de todas las etiquetas condicionales de WordPress con ejemplos en el Codex de WordPress.

Etiquetas condicionales específicas del tema

Algunos temas premium también usan sus propias etiquetas condicionales que son exclusivas de su marco temático.

Woo Commerce es uno de estos: Ejemplos:

 is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.

Obtenga más información sobre el uso de etiquetas condicionales con Woo Commerce.

Conclusión

Usar un tema que ofrece una amplia gama de fragmentos de código probados por el desarrollador es una gran ventaja. De esta manera, puede elegir cualquiera de las etiquetas condicionales que ofrece WordPress y agregarla a su fragmento de código para personalizar su tema de la forma que desee.