detectando si es la página de inicio en functions.php

2 minutos de lectura

avatar de usuario
casa de bg

Estoy tratando de detectar si la página actual es la página de inicio en mi nueva instalación de WordPress.

El fragmento de código a continuación funciona en page.php pero no funciona en functions.php. ¿Cómo puedo detectar la página de inicio en functions.php en WordPress?

if (is_front_page()) {
    echo 'test';
}

Sé que puedo usar $_SERVER['REQUEST_URI']pero pensé que debería haber una mejor manera de hacer esto.

En WordPress Configuración > Lectura, tengo una página estática para mi página de inicio. is_home() no funciona en mi página.php pero is_front_page() sí funciona en mi página.php. Ambas funciones no funcionan en mis funciones.php

  • Sin ningún código adicional es difícil saberlo. ¿Puede proporcionar más del código en functions.php con el que estás trabajando?

    -Kevinji

    5 sep 2014 a las 19:39

  • El código sin procesar en functions.php se ejecuta mucho antes de que WordPress comience a averiguar qué página/plantilla va a usar. ¿Qué estás tratando de lograr en realidad? Probablemente desee conectarse a una acción o filtrar para que su código pruebe is_front_page está configurado para ejecutarse más adelante, en un momento en que WordPress ha configurado suficientes cosas para responder a esa pregunta… De las notas: “is_home utiliza el objeto global $wp_query WP_Query. is_home no se puede usar antes de la acción parse_query”. Por lo tanto, deberá diferir su ejecución al menos hasta ese momento.

    –Matt Gibson

    5 sep 2014 a las 19:56


  • Quiero cargar algunos scripts y css solo para la página de inicio en functions.php. Eso es lo que estoy tratando de lograr.

    – casa bg

    7 sep 2014 a las 20:53

avatar de usuario
Pieter Goosen

Simplemente use el is_home() etiqueta condicional para verificar la página de inicio

EDITAR

Por sus comentarios, lo que está intentando nunca funcionará. Debe agregar su código dentro de una función y luego conectarlo a algún gancho

<?php
function my_custom_function() {
    if(is_front_page()){ 
        echo "home"; 
    }else{ 
        echo "not home"; 
    }
}
add_action( 'wp_head', 'my_custom_function' );

tu tambien estas afirmando en un comentario que desea cargar estilos y scripts solo en la página principal. Puedes intentar lo siguiente

<?php
function my_custom_function() {
    if(is_front_page()){ 
       //Load your styles and scripts
    }
}
add_action( 'wp_enqueue_scripts', 'my_custom_function' );

  • En la Configuración de wordpress> Lectura, tengo una página estática para mi página de inicio. is_home() no funciona en mi página.php pero is_front_page() sí funciona en mi página.php. Ambas funciones no funcionan en mis funciones vacías.php

    – casa bg

    12/09/2014 a las 18:18


  • Gracias. is_front_page() funcionó dentro de la acción wp_enqueue_scripts en functions.php.

    – casa bg

    16/09/2014 a las 20:32

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad