1. Web Design
  2. HTML/CSS
  3. HTML

Tutorial Acerca de las Etiquetas Condicionales en WordPress: 27 a 39

Scroll to top
This post is part of a series called A Walkthrough on Conditional Tags in WordPress.

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En esta serie, estamos revisando una de las características fundamentales de WordPress: Las etiquetas condicionales. En esta cuarta parte, continuaremos introduciendo y revisando las etiquetas condicionales. Asegúrate de revisar las partes anteriores si aún no lo ha hecho.

¡Empecemos!

27. Comprobar si la página es una página de "archivos mensuales": is_month()

En WordPress, el tipo de archivo basado de fechas más utilizado probablemente sea el de los archivos mensuales. Cuando necesites detectar si el código se está ejecutando en una página de archivo mensual, te resultará útil la etiqueta condicional is_month().

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

28. Comprobar las características del tema actual: current_theme_supports()

Durante el desarrollo de plugins, es posible que tengas que comprobar si el tema activo admite las miniaturas, los formatos de entrada, las cabeceras personalizadas o incluso los widgets. Con la ayuda de current_theme_supports(), puedes comprobar si el tema en uso admite la característica que especifiques.

Parámetros aceptados

Esta etiqueta condicional solo tiene un parámetro:

  • $feature (cadena, opcional): nombre de la característica. (Predeterminado: Ninguno)

Nombres de características:

  • 'post-thumbnails'
  • 'post-formats'
  • 'custom-header'
  • 'custom-background'
  • 'menus'
  • 'automatic-feed-links'
  • 'editor-style'
  • 'widgets'
  • 'html5'

Ejemplo de uso de current_theme_supports()

Supongamos que estás desarrollando un plugin específicamente para temas de WordPress con la función de "fondos personalizados". Su plugin no será útil en aquellos temas que no admitan fondos personalizados, por lo que necesitas mostrar un mensaje de error en el panel de administración para informar al usuario. Esto es lo que harías:

1
<?php
2
3
add_action( 'admin_notices', 'custom_bg_feature_warning' );
4
5
function custom_bg_feature_warning() {
6
7
    if ( ! current_theme_supports( 'custom-background' ) ) {
8
    
9
    echo '<div class="error">

10
              <p>' . __( 'This plugin requires a theme with the "custom backgrounds" feature enabled.', 'translation-domain' ) . '</p>

11
          </div>';
12
    
13
    }
14
15
}
16
17
?>

29. Comprobar si el plugin especificado está activo: is_plugin_active()

La etiqueta condicional is_plugin_active() funciona solo en el panel de administración y ayuda a tu código a saber si el plugin dado está activo. Esta etiqueta condicional puede ser útil si estás escribiendo "complementos de plugins" para plugins populares (como WooCommerce) o frameworks instalados como plugins (como Redux Framework).

Parámetros aceptados

Esta etiqueta condicional solo tiene un parámetro:

  • $plugin (cadena, obligatoria): nombre del complemento o del subdirectorio. (Predeterminado: Ninguno)

30. Comprobar de si la URL es un archivo adjunto local: is_local_attachment()

Los archivos adjuntos de WordPress son una bendición cuando se usan correctamente, pero ¿cómo averiguar si una URL es realmente un archivo adjunto? Si estás trabajando con URL mientras desarrollas, la etiqueta condicional is_local_attachment() podría resultarte muy útil: Comprueba si la URL dada se carga en la misma instalación de WordPress que un archivo adjunto.

Parámetros aceptados

Esta etiqueta condicional solo tiene un parámetro:

  • $url (cadena, obligatorio): URL a comprobar. (Predeterminado: Ninguno)

Ejemplo de uso de is_local_attachment()

Dado que esta etiqueta condicional es bastante sencilla, el ejemplo también lo será. Imagina que estás desarrollando un plugin y necesitas que las URL (generadas por otra función que creaste) sean comprobadas para ver si son archivos adjuntos locales o no:

1
<?php
2
3
$url = some_url_generator_function();
4
5
if ( is_local_attachment( $url ) ) {
6
7
    _e( 'Yep, this is a local attachment!', 'translation-domain' );
8
9
} else {
10
11
    _e( 'Nope, this is not a local attachment.', 'translation-domain' );
12
13
}
14
15
?>

31. Comprobar si la página es una página de archivo basada en el tiempo: is_time()

¿Sabías que WordPress tiene archivos basados en horas, basados en minutos e incluso en segundos? (Para ser honesto, no sabía que podías crear este tipo de archivos antes de escribir esta serie. Escribir en Tuts+ también puede ser un viaje educativo!)

No se crean de forma automática, lo que significa que no puedes escribir misitioweb.com/2014/02/22/18/30/ y obtener los archivos de las 18:30 del 22 de febrero de 2014; pero puedes crear una con la ayuda de la clase WP_Query. De todos modos: Si deseas detectar este tipo de archivos basados en el tiempo, puedes utilizar la etiqueta condicional is_time().

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

32. Comprobar si la configuración regional actual es RTL: is_rtl()

En algunos idiomas, principalmente en los países de Oriente Medio, el texto se escribe de derecha a izquierda en lugar de hacerlo de izquierda a derecha. Como desarrollador de WordPress, debes considerar a todos los usuarios de WordPress, y si quieres que tu tema o plugin funcione bien con sitios web de WordPress con texto RTL, debes usar is_rtl() para determinar si la configuración regional es RTL.

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

Ejemplo de uso de is_rtl()

Es una práctica común entre la mayoría de los diseñadores web crear hojas de estilo independientes para configuraciones regionales RTL. Y si deseas cargar tu hoja de estilos RTL condicionalmente, esto es lo que deberías hacer:

1
<?php
2
3
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_styles' );
4
5
function mytheme_enqueue_styles() {
6
7
    if ( is_rtl() ) {
8
    
9
        wp_enqueue_style( 'style-rtl', plugins_url( '/css/style-rtl.css', __FILE__ ) );
10
    
11
    }
12
13
}
14
15
?>

33. Comprobar si la página es una página de "Archivos" de una taxonomía personalizada: is_tax()

La etiqueta condicional is_tag() puede detectar archivos de etiquetas, pero no puede funcionar con taxonomías personalizadas. Para determinar si se muestra una página de archivo de taxonomía, puedes utilizar is_tax(). De forma predeterminada, incluye todas las páginas de archivo de taxonomía, incluidas las etiquetas estándar. Pero tiene dos parámetros, por lo que puedes dirigirte a páginas de archivo de taxonomía específicas, o incluso términos específicos.

Parámetros aceptados

Esta etiqueta condicional solo tiene un parámetro:

  • $taxonomy (matriz/cadena, opcional): el slug de la taxonomía o una matriz de slugs. (Predeterminado: Ninguno)
  • $term (matriz/cadena, opcional): ID del término, su nombre, su slug o una matriz de ellos. (Predeterminado: Ninguno)

34. Comprobar si la página es una página de adjuntos: is_attachment()

Al crear un plugin (o tema), es posible que desees saber cuándo se muestra una página de archivos adjuntos. La etiqueta condicional is_attachment() es la que te ayudará: Devuelve TRUE si es una página de adjuntos y FALSE si es cualquier otro tipo de página.

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

Ejemplo de uso de is_attachment()

Supongamos que deseas mostrar un enlace "Volver a la entrada" encima del archivo adjunto. Esto es lo que harías:

1
<?php
2
3
if ( is_attachment() ) {
4
5
    // Get attachment's parent.

6
    $parent = get_post_field( 'post_parent', $id );
7
    
8
    // Get permalink of the parent post.

9
    $parent_link = get_permalink( $parent );
10
    
11
    // Echo the link.

12
    echo '<a href="' . $parent_link . '" class="parent-post-link">' . __( 'Back to the post', 'translation-domain' ) . '</a>';
13
14
}
15
16
?>

35. Comprobar si el término especificado existe: term_exists()

Esta es la segunda etiqueta condicional que no devuelve ni TRUE ni FALSE, sino más útil información: la etiqueta condicional term_exists() comprueba si existe un término de taxonomía y devuelve el identificador del término (si no se especifica ninguna taxonomía) o una matriz de la taxonomía y el correspondiente término en lugar de TRUE. Si el término especificado no existe, devuelve 0 o NULL.

Parámetros aceptados

Esta etiqueta condicional tiene tres parámetros:

  • $term (cadena/entero, obligatorio): nombre o ID del término. (Predeterminado: Ninguno)
  • $taxonomy (cadena, opcional): Nombre de la taxonomía. (Predeterminado: Vacío)
  • $parent (entero, opcional): ID del término padre (para acotar la búsqueda a los términos que están jerárquicamente bajo él). (Predeterminado: 0)

36. Comprobar si la entrada tiene asignado el termino especificado: has_term()

Ya vimos que podíamos usar has_tag() si queríamos encontrar una etiqueta en una entrada. ¿Y si quisiéramos hacer lo mismo, pero con un término de una taxonomía personalizada? Sencillo: La etiqueta condicional has_term() tiene un tercer parámetro (segundo en orden) que nos permite especificar una taxonomía personalizada.

Dato curioso: ¡Hasta la etiqueta condicional has_tag() utiliza has_term() para devolver TRUE o FALSE! Y al igual que con la función has_tag(), has_term() también te permite especificar más de un término (pero en una sola taxonomía).

Parámetros aceptados

Esta etiqueta condicional tiene tres parámetros:

  • $term (matriz/cadena/entero, opcional): nombre del término, ID, slug o una matriz de ellos. (Predeterminado: Vacío)
  • $taxonomy (cadena, obligatorio): Nombre de la taxonomía. (Predeterminado: Vacío)
  • $post (objeto/entero, opcional): Entrada a comprobar. (Predeterminado: NULL)

Ejemplo de uso de has_term()

Supongamos que administras un sitio web de comercio electrónico y vas a cambiar tu proveedor de portátiles Dell, por lo tanto, deseas informar a los usuarios de que los envíos se retrasarán hasta la próxima semana. Esto es lo que harías:

1
<?php
2
3
if ( has_term( 'dell', 'laptops' ) ) {
4
5
    echo '<div class="above-product-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'We\'re switching suppliers for Dell laptops, so the shipments will be delayed until next week. Sorry about that!', 'translation-domain' ) . '</div>';
6
    
7
}
8
9
?>

37. Comprobar si es un trackback (y estamos en 2007): is_trackback()

¡Saludos, anticuado! ¿Quieres saber si un comentario es un "trackback"? ¡La etiqueta condicional is_trackback() te ayudará con eso!

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

38. Comprobar si "WordPress Multisite" está en uso: is_multisite()

Si bien es una característica no tan popular de WordPress, cuando es necesario, un multisitio resulta muy útil. Si deseas que el código se ejecute en instalaciones normales de WordPress y se comporte de manera diferente en las instalaciones multisitio, la etiqueta condicional is_multisite() puede ayudarte a detectar si el soporte multisitio está habilitado.

Parámetros aceptados

Esta etiqueta condicional no acepta ningún parámetro.

Ejemplo de uso de is_multisite()

Supongamos que estás desarrollando un plugin, y que si Multisite está habilitado, el plugin requiere otra clase de tu plugin. Esto es lo que harías:

1
<?php
2
3
if ( is_multisite() ) {
4
5
    require_once( 'path/to/multisite-class.php' );
6
7
}
8
9
?>

39. Comprobar si la página es un archivo de un tipo o de unos tipos de entrada: is_post_type_archive()

A veces, es posible que desees que el código sepa si se muestra una página de archivo para un tipo de entrada personalizada (o un par de tipos de entradas personalizadas o cualquier tipo de entrada personalizada). La etiqueta condicional is_post_type_archive() hace exactamente eso: Comprueba si la consulta es para una página de archivo de un tipo de entrada personalizada.

Parámetros aceptados

Esta etiqueta condicional solo tiene un parámetro:

  • $post_types (matriz/cadena, opcional): nombre del tipo de entrada o matriz de nombres de tipo de entradas. (Predeterminado: Ninguno)

Conclusión

En esta parte, revisamos otro lote de las 65 etiquetas condicionales documentadas en WordPress. En las siguientes partes, vamos a revisar las 26 restantes. Si tienes alguna pregunta o comentario, dispáralos a continuación, y si te gustó este artículo, ¡no te olvides de compartirlo!

¡Nos vemos en la siguiente parte!