¿Cuándo usar is_home() vs is_front_page()?

6 oct 2011, 08:42:56
Vistas: 58.4K
Votos: 77

He descubierto que is_front_page parece devolver true cuando estoy viendo la página de inicio y tengo una entrada fija asignada allí.

También devuelve true cuando he asignado una página como página de inicio estática a través de Ajustes > Lectura.

¿Por qué querría usar alguna vez is_home()?

0
Todas las respuestas a la pregunta 4
2
80

is_front_page() devuelve verdadero si el usuario está en la página o página de entradas que está configurada como página de inicio en Ajustes->Lectura->Tu página de inicio.

Por ejemplo, si configuras Sobre nosotros como página de inicio, este condicional solo será verdadero cuando se muestre la página Sobre nosotros.

is_home() devuelve verdadero cuando está en la página de lista de entradas, que normalmente muestra las últimas 10 publicaciones.

Si los ajustes en Tu página de inicio muestra se dejan por defecto, la página de inicio devolverá verdadero tanto para is_front_page() como para is_home().

Un ejemplo de uso de is_home():

  • Has configurado tu página de entradas como una página llamada Noticias.
  • Cuando un usuario navega allí y deseas mostrar navegación adicional en el encabezado
  • Podrías usar is_home() para lograr esto.
6 oct 2011 09:09:24
Comentarios

Exacto. Yo lo diferencio de la siguiente manera: is_front_page() devuelve verdadero cuando se visualiza la Página Principal del Sitio (ya sea que muestre el índice de entradas del blog o una página estática), mientras que is_home() devuelve verdadero cuando se visualiza el Índice de Entradas del Blog (ya sea mostrado en la página principal o en una página estática).

Chip Bennett Chip Bennett
6 oct 2011 14:40:27

Quizás es hora de un alias como is_post_index o algo similar? Otro ejemplo ridículo de cómo la obsesión de WordPress por la compatibilidad hacia atrás realmente perjudica la usabilidad.

Jesse Nickles Jesse Nickles
30 ene 2023 12:08:07
7

He descubierto que is_home() y is_front_page() no entregan lo esperado para multisitios. Mi solución alternativa usando las bondades incorporadas de PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // debes estar en la página de inicio
}

Como se mencionó en los comentarios, este enfoque no funcionará para instancias de WP instaladas en subdirectorios de la raíz web. Úsalo bajo tu propio criterio.

3 may 2016 18:30:22
Comentarios

Por favor, elabora sobre cómo no cumple con lo esperado.

Christine Cooper Christine Cooper
3 may 2016 19:58:07

En un sitio principal de multisitio, si usas cualquier forma de is_home() o is_front_page() en una página de inicio estática o del blog, ambas funciones devolverán falso.

Dylan Pierce Dylan Pierce
3 may 2016 20:12:58

Acabo de probar ambas condiciones en un entorno multisitio y ambas devolvieron verdadero cuando visité las respectivas páginas /.

Christine Cooper Christine Cooper
4 may 2016 12:53:55

Estoy usando la caja VVV de WordPress con el plugin multisitio: https://github.com/Varying-Vagrant-Vagrants/vvv-multisite quizás hay algo mal configurado en él. De cualquier forma, dejo una respuesta con una solución alternativa por si alguien se encuentra en una situación similar.

Dylan Pierce Dylan Pierce
4 may 2016 16:07:58

Tu código es casi perfecto, lo único es: ¿Qué pasa si WP está instalado en un subdirectorio, por ejemplo /blog o /wordpress? Entonces esto será inútil.

Remzi Cavdar Remzi Cavdar
2 nov 2018 10:37:00

@RemziCavdar eso es cierto. Editaré mi respuesta. Desafortunadamente, debido a las muchas formas en que puedes alojar WP, te encuentras con muchos problemas.

Dylan Pierce Dylan Pierce
2 nov 2018 18:42:32

@DylanPierce También te he dado un pulgar arriba. La respuesta de Brady es más a prueba de fallos. Creo que vragant está configurando mal tu entorno de prueba porque tanto is_front_page() como is_home() deberían funcionar

Remzi Cavdar Remzi Cavdar
2 nov 2018 21:15:19
Mostrar los 2 comentarios restantes
0

Querrás usar is_home() cuando necesites verificar si el usuario está viendo tu lista de entradas del blog (normalmente configurado para mostrar 10 entradas por página). Si tienes un archivo home.php en tu tema, este se mostrará cuando la condición is_home() sea verdadera.

Lo siguiente también puede ayudar a eliminar cierta confusión: cuando las condiciones is_front_page() e is_home() son ambas verdaderas, se usará la plantilla front-page.php en lugar de home.php.

28 abr 2014 23:53:46
0
  • Visitas una página de inicio que es la página principal del blog => is_front_page() = VERDADERO && is_home() = VERDADERO
  • Visitas una página de inicio que es una página estática => is_front_page() = VERDADERO && is_home() = FALSO
  • Visitas la página principal del blog pero tu página de inicio es una página estática => is_front_page() = FALSO && is_home() = VERDADERO (También VERDADERO al acceder a páginas paginadas)

Referencias para las definiciones:

https://developer.wordpress.org/reference/functions/is_home/ https://developer.wordpress.org/reference/functions/is_front_page/

5 feb 2024 10:50:43