Entradas

WordPress is_home vs is_front_page

WordPress ofrece múltiples funciones condicionales que nos permiten gestionar la forma en que se muestra un contenido u otro de manera eficiente y clara. Sin embargo, dos de las más utilizadas pueden resultar bastante confusas a la hora de elegir cual usar, son is_home() e  is_front_page(). En este post voy a intentar explicar cuando usar una u otra.

Funcionamiento

Con estas funciones condicionales, se puede comprobar si se está visualizando la página de inicio (is_home), o si la pagina que se está utilizando es una página estática (is_front_page). Este comportamiento lo podemos definir en el menú Ajustes -> Lectura.

condicional wordpress

Veamos como funcionan realmente estas dos etiquetas condicionales dependiendo de la configuración que selecciones para nuestra página frontal.

1. Configuración por defecto:

En la configuración por defecto WordPress nos muestra en la pagina de inicio las últimas entradas.

  • URL : nuestraweb.com
  • is_home: TRUE
  • is_front_page: TRUE

En esta configuración no hay ningún problema.

2. Página frontal estática:

La página de inicio utiliza una de nuestras páginas estáticas.

  • URL: nuestraweb.com
  • is_home: FALSE
  • is_front_page: TRUE

No hay  problema con la página estática: is_front_page devuelve true

3. Página de blog

Una de nuestras páginas estáticas se usa para mostrar todas las entradas.

  • URL: nuestraweb.com/pagina
  • is_home : TRUE
  • is_front_page : FALSE
En esta configuración hay  algunos problemas: is_home devuelve TRUE, pero esta pagina no es la de inicio, es una página que lista todas las entradas, tal como sucedería cuando listamos los post de una categoría, etiqueta o archivo.

Uso correcto

Cuando creamos un plugin o un tema, debemos tener en cuenta que los usuarios pueden cambiar la configuración de la página frontal. Por lo tanto, cada vez que utilicemos is_home, debemos comprobar is_front_page antes. Si no lo hacemos, es posible que tengamos problemas con algunos usuarios. Por ejemplo, si sólo comprobamos is_home para mostrar el contenido de su página de inicio, habrá problemas con la página estática ya que como hemos visto no mostraría el contenido correcto.

Veamos como quedaría la anidación de condicionales:

Espero que esta pequeña entrada te haya aclarado las dudas.