Todos usamos declaraciones condicionales en nuestros desarrollos bajo WordPress, ¿verdad? Pero sabes todo incorporado Etiquetas condicionales de WordPress? Son simplemente geniales porque gracias a estas etiquetas es muy fácil crear declaraciones condicionales. Por ejemplo, puede mostrar contenido solo para algunos usuarios, o cargar scripts solo si una página usa una plantilla personalizada específica, o incluso diseñar una publicación si esta publicación es pegajosa.
Las etiquetas condicionales se pueden usar en sus temas o en sus complementos, no importa, pero tenga en cuenta que en algunos complementos a veces será un poco complicado usar algunas etiquetas (de hecho, todas las etiquetas específicas de los temas).
Etiquetas condicionales disponibles
Aquí está la lista de funciones condicionales disponibles:
- comments_open
- has_tag
- has_term
- in_category
- is_404
- is_admin
- is_archive
- is_attachment
- es_autor
- is_category
- is_child_theme
- is_comments_popup
- is_date
- es día
- is_feed
- is_front_page
- es casa
- is_month
- is_multi_author
- is_multisite
- is_main_site
- is_page
- is_page_template
- está_paginado
- is_preview
- is_rtl
- is_search
- es soltera
- is_singular
- is_sticky
- is_super_admin
- is_tag
- is_tax
- es hora
- is_trackback
- es_año
- pings_open
- post_type_exists
- is_post_type_hierarchical
- is_post_type_archive
- is_comments_popup
- taxonomy_exists
- is_new_day
- has_excerpt
- has_nav_menu
- en el lazo
- is_active_sidebar
- is_main_site
- is_plugin_active
- is_child_theme
- current_theme_supports
Probablemente conozcas algunos de ellos, pero ¿realmente conoces la diferencia entre is_single_ () e is_singular ()? ¿O entre id_day () e is_date ()? ¿Sabías que is_preview ()? Para comprender cómo funciona cada función, simplemente haga clic en el nombre de la etiqueta y lea atentamente las instrucciones del códice.
Todas las etiquetas condicionales devuelven VERDADERO o FALSO
Las etiquetas condicionales son una de mis funciones integradas favoritas de WordPress y realmente te animo a que las uses ampliamente en tus códigos. Todas las funciones siempre devuelven VERDADERO o FALSO, nunca ID o matriz ().
Una estrecha relación con la jerarquía de plantillas.
Como sabrá, WordPress usa una plantilla realmente poderosa jerarquía sistema. Bueno, el uso de etiquetas condicionales está estrechamente relacionado con esta jerarquía. Este es el principio utilizado para seleccionar la página de plantilla que se utilizará según la URL que esté visitando.
Las etiquetas condicionales aceptan muchos argumentos
Al usar estas etiquetas condicionales, debe saber que puede pasarles diferentes variables como ID, slug o matrices. Aquí hay un ejemplo tomado del códice con la función is_author ():
- es_autor ()
- Cuando se muestra cualquier página de Autor.
- es_autor ('4')
- Cuando se muestra la página de archivo para el número de autor (ID) 4.
- is_author ('Vivian')
- Cuando se muestra la página de archivo del autor con el apodo «Vivian».
- is_author ('john-jones')
- Cuando se muestra la página de archivo del autor con el nombre de Nicena «john-jones».
- es_autor (matriz (4, 'john-jones', 'Vivian'))
- Cuando la página de archivo del autor es el ID de usuario 4 o user_nicename «John-jones», o apodo “Vivian”.
Ejemplos de
Así es como funcionan casi todas las funciones condicionales pero, por supuesto, puede combinar muchas condiciones:
if ( is_home() && in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) {
the_content();
}
else {
the_excerpt();
}
o puede realizar una acción si ocurre una situación u otra:
if ( is_home() || in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) {
the_content();
}
else {
the_excerpt();
}
Y si quieres hacer una condición negativa, ¡usa ”! “:
$paged = $wp_query->get( 'page' );
if ( ! $paged || $paged < 2 )
{
// This is not a paginated page (or it's simply the first page of a paginated page/post)
}
else
{
// This is a paginated page.
}
Y finalmente, el uso de etiquetas condicionales es como cualquier otra declaración PHP «else if»:
if ( is_page( 'about' ) || '2' == $post->post_parent ) {
// the page is "About", or the parent of the page is "About"
$bannerimg = 'about.jpg';
} elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) {
$bannerimg = 'teaching.jpg';
} elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) {
$bannerimg = 'admissions.jpg';
} else {
$bannerimg = 'home.jpg'; // just in case we are at an unclassified page, perhaps the home page
}
Crear etiquetas condicionales personalizadas
En algunos casos, debe crear sus funciones condicionales personalizadas. Eso es bastante fácil de hacer, pero muy a menudo los nombres de las funciones no siguen la misma lógica que la utilizada por los desarrolladores principales. Utilice la misma convención de nomenclatura con un prefijo como «es_«,»posee_«,»en_“. Esto es muy útil, en particular, si no es la única persona que trabaja en un guión específico.