WooCommerce, ¿cómo verificar si la página is_shop () en functions.php?

2 minutos de lectura

avatar de usuario
kd patel

En WooCommerce, Mi página de lista de categorías y la página de lista de productos se representan desde archieve-product.php (por defecto). Cómo comprobar si la página es_tienda() en funciones.php? Como la función is_shop no funciona en functions.php. simplemente quiero eliminar mi barra lateral de la lista de categorías página no de la página de listado de productos.

  • ¿Cuál es tu pregunta? Usar la función es bastante sencillo: “Devuelve verdadero cuando está en la página de archivo del producto (tienda)”.

    – Jorge

    20 mayo 2016 a las 15:52

  • Sí.. Pero el problema es que cuando hago clic en una categoría en particular. Los productos se muestran de esas categorías que también se representan desde el mismo archive-product.php. Entonces, la barra lateral desaparece incluso en la página de listado de productos. … Tiene esto algún sentido :/ ??

    – kd patel

    20 mayo 2016 a las 16:07


Cuando se coloca dentro de un gancho, is_shop funcionará en functions.php

add_action( 'template_redirect', 'custom_template_redirect' );

function custom_template_redirect() {

    if( is_shop() ) :

         // code logic here

    endif;    
}

Aquí hay una lista de todos Condicionales de WooCommerce

  • Esta hermana debe aceptarse como la respuesta correcta. Este funcionó para mí. Muchas gracias

    – Karue Benson Karue

    27 de febrero de 2021 a las 19:16

avatar de usuario
carnero mukesh

Puede escribir una condición en “archivo-producto.php” para la página de categoría como,

    $cate = get_queried_object();
    if(is_product_category()  && $cate->parent != 0 ){

         // Write code here
         //include sidebar here
    }

Al usar este código, esto verificará la página para product_category y también verificará si hay un padre.

llámalo usando WordPress Hook antes de obtener publicaciones

add_action('pre_get_posts','nameTheFunction');

function nameTheFunction(){

   if(is_shop()){

    // your code here 

  }

}// function end here

Obtenga más información sobre el gancho de publicaciones previas a la obtención

https://developer.wordpress.org/reference/hooks/pre_get_posts/

avatar de usuario
monstruo

Puedes usar function_exists

if( function_exists("is_shop") ) {
    // call it or do something else
}
else {
    // load it from somewhere
}

Documentos oficiales: https://secure.php.net/function_exists

¿Ha sido útil esta solución?