1. Code
  2. PHP

PHP para WordPress: Dominar las declaraciones y las etiquetas condicionales

Scroll to top

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

La característica de las declaraciones condicionales es un aspecto extremadamente útil y potente de WordPress; aunque continúa en desuso en el proceso de desarrollo. Puedes lograr muchas cosas mediante el simple e inteligente uso de estas declaraciones. A veces, cuando necesitas que un texto específico o una imagen única para aparezcan en una página concreta de tu sitio y no en ninguna otra, mediante el uso de declaraciones condicionales junto con etiquetas condicionales de WordPress puedes conseguirlo fácilmente sin tener que crear distintas páginas o plantillas.


¿Qué son las declaraciones condicionales?

Las instrucciones "If" de PHP se conocen generalmente como instrucciones condicionales. Estas declaraciones se utilizan dentro de los archivos de un tema de WordPress junto con ciertas funciones del propio WordPress que definen la lógica para informar a la base de datos de WordPress cómo y qué contenido debe mostrarse en función de un criterio determinado. Estas declaraciones son muy importantes a la hora de construir temas para WordPress y son similares a la creación de la jerarquía de plantillas.

Las declaraciones condicionales básicas tienen este aspecto:

1
<?php if ( ) { ?>......<?php  } ?></strong></p>

En términos básicos, esto es bastante simple:

Si existe/sucede/etc. "algo", haz algo.

Puedes (y probablemente lo hagas) utilizar este tipo de declaración general "if" contínuamente dentro de WordPress. WordPress tiene su propio conjunto de instrucciones condicionales, así que echémosles un vistazo a ver qué aspecto tienen:


Una lista de etiquetas condicionales importantes de WordPress

Existen diferentes tipos de etiquetas condicionales en las declaraciones condicionales. Estas etiquetas obtienen información particular de la base de datos de WordPress. Estas etiquetas condicionales están definidas para muchos distintos elementos en WordPress, por ejemplo, entradas, etiquetas, textos, imágenes, categorías, etc.

Algunos de los más populares son:

1.is_page(): Si deseas aplicar una determinada condición a una de tus páginas en concreto, por ejemplo, la página "Contáctanos". Puedes utilizar esta etiqueta para hacer referencia a esa página utilizando su número de ID en la base de datos o su title, o su slug/name. Por ejemplo:

1
is_page(2')
2
or
3
is_page(Contact)

2. is_category(): Si deseas aplicar una determinada condición a una página de categoría específica, por ejemplo, Books, entonces puedes usar esta etiqueta para hacer referencia a esa página utilizando su número de ID en la base de datos o su title o su slug /name. Por ejemplo:

1
 is_category(4)

3. is_home(): Esto se utiliza para hacer referencia a tu página de inicio.

4. is_single(): Esto se utiliza para las blogs de una única página, para entradas individuales de un blog o para archivos adjuntos.

5. is_tag(): Se utiliza para hacer referencia a una página de archivo de etiquetas. Funciona de forma similar a una página de categoría.

6. is_archive(): Se utiliza para hacer referencia a las páginas de archivo.

7. is_search(): Se utiliza para hacer referencia a las páginas de los resultados de búsqueda.

8. is_404(): Se utiliza para hacer referencia a una página de error HTTP 404:Not Found error page, es decir a las páginas no encontradas o inexistentes.

9. is_author(): Se utiliza para hacer referencia a la página de archivo de un autor individual.

10. is_comments_popup(): Se utiliza para hacer referencia a la ventana emergente de un comentario.

Puedes consultar el listado completo de etiquetas en la página del Codex de WordPress.


Aprendiendo a través de ejemplos

Todo esto está bien en teoría, pero vamos a profundizar viendo algunos ejemplos prácticos de código de estas declaraciones condicionales en acción.

Ejemplo #1:

¿Cuál debe ser el código para mostrar una imagen en tu primera página, nada en la segunda y algún texto en la tercera? (Estas páginas son hipotéticas, puedes reemplazarlas por tus propios nombres de página, como Contáctanos, Acerca de, Información, etc...)

1
  <?php  if ( is_page('First_Page') ) { ?><br />
2
  <img src="image.gif" /><br />
3
  <?php  } elseif ( is_page('Third_Page') ) { ?><br />
4
  <p>Here is some text….</p><br />
5
  <?php  } else { ?><br />
6
  <?php  } ?>

Ten en cuenta que:

Estos códigos deben escribirse desde el editor de temas en el archivo page.php y en donde deseas que aparezca el contenido condicional.

Nota adicional: Esta es una instrucción multi condicional (consulta la lógica de ejecución del múltiple "if, elseif, else...") Este código comprueba la página adecuada mediante las etiquetas y, a continuación, muestra los elementos en consecuencia. Dentro de un código puedes utilizar condiciones ilimitadas.

is_page(array('First_Page','Second_Page')) se puede utilizar para mostrar algo en ambas páginas.


Ejemplo #2:

¿Cómo mostrar un texto en una entrada única O en la página de una categoría en particular?

Aquí es necesario utilizar el símbolo "||" para mostrar algo si se cumple alguna de las condiciones dadas. Si no se cumple ninguna condición, no se mostrará nada.

1
  <?php  if(is_category(Category_Page) ) || ( is_single(Single_Page))  { ?>
2
  <p>Display  this text….</p>
3
  <?php  } else { ?>
4
  <?php  } ?>

Nota adicional: Aquí usamos el "||", que comprueba si se cumple alguna de las condiciones... Alternativamente, podríamos usar "&&" para crear una condición AND, en la que se deben cumplir ambas condiciones para mostrar el elemento. "!" se utiliza para excluir algo de la lista.

Ejemplo. !( is_page(Excluded_PageName)). También puedes utilizar variables para hacer referencia a las subpáginas de una página principal. Por ejemplo, post->post_parent=="Parent_Page_Name"


Ejemplo #3:

¿Cómo cargar otros elementos como archivos CSS o archivos JavaScript en una de mis páginas?

Este fragmento de código te mostrará cómo mostrar los archivos de formulario de contacto solo en tu página Contáctanos.

1
  <?php  if ( is_page( 'contact_us_page' ) ) {   ?>
2
  <link  rel='stylesheet' href='/contactusform.css' type='text/css' media='all' />
3
  <script  type='text/javascript' src=k'/jqueryform.js'></script>
4
  <script  type='text/javascript' src='/spec_forms.js'></script>
5
  <?php  } ?>

Ejemplo #4:

¿Cómo usar etiquetas condicionales en los tipos de entradas personalizadas?

La combinación de tipos de entradas personalizadas y etiquetas condicionales crea una forma realmente inteligente de mostrar información a los usuarios. El siguiente fragmento de código te permitirá mostrar información de contacto al final de tus entradas de valoración.

1
  
2
  <?php  if ( review_entry' == get_post_type() ) { ?>

3
  <div  id="reviewcontact">

4
  <p>If  you're impressed by the  reviews, kindly  contact us asap. Give us a call or <a href="/contact"  title="Contact Us">CLICK HERE</a> to send us a message!</p>
5
  </div>
6
  <?php  } ?>

Ejemplo #5:

¿Cómo comprobar si se ha subido o no la imagen de "miniatura de entrada"?

El siguiente código busca una imagen y si no la encuentra mostrará otra imagen alternativa.

1
  <?php  if(posted_thumbnail()) {
2
  show_thumbnail();
3
  }  else {?>
4
  <img src="<?php  bloginfo('template_directory');?>/images/default_Image.gif" alt="Image not Displayed">
5
  <?php  }?>

Conclusión

Por lo tanto, al dominar estas pequeñas etiquetas condicionales y combinarlas con declaraciones php condicionales, podrás escribir menos y conseguir más cosas en tu sitio WordPress. Esto no sólo te ayuda durante el mantenimiento de tu sitio, sino que también te ayuda a aprovechar alta utilidad de la arquitectura de la base de datos de WordPress.

Si queréis ver más de estos tutoriales sobre "PHP básico" para WordPress, ¡háznoslo saber a través de un comentario!