Woocommerce: Cómo eliminar el título de página en la página de inicio/tienda pero no en las páginas de categorías

23 nov 2017, 04:20:19
Vistas: 43.3K
Votos: 7

He configurado la página "tienda" como mi página de inicio y quiero eliminar el título predeterminado de woocommerce de la página de inicio del sitio. He vaciado el título pero todavía obtengo una etiqueta vacía como esta en la página de inicio:

<h1 class="woocommerce-products-header__title page-title"></h1>

Esto crea un área vacía sobre el contenido que es molesta. He probado las siguientes soluciones y funcionan PERO el título de página para las páginas de categorías también se eliminaría. Quiero que solo se elimine el título en la página de inicio.

  1. Primera solución: Agregué el siguiente código a mi estilo:

    .woocommerce-page .page-title {
    
     display: none;
    
    }
    
  2. Agregué lo siguiente a function.php

    add_filter('woocommerce_show_page_title', '__return_false');
    

Repito, estas soluciones hacen lo que se supone que deben hacer, pero quiero que el título de página para las categorías permanezca y solo se elimine el título de la página de inicio.

1
Comentarios

ten en cuenta que este filtro solo funciona si declaras el soporte del tema. me estaba volviendo loco tratando de entender por qué no funcionaba para mí...

honk31 honk31
13 mar 2019 19:06:16
Todas las respuestas a la pregunta 6
4

En lugar de modificar las plantillas directamente, puedes agregar esto al archivo functions.php de tu tema hijo:

add_filter( 'woocommerce_show_page_title', 'not_a_shop_page' );
function not_a_shop_page() {
    return boolval(!is_shop());
}
12 nov 2018 06:44:16
Comentarios

¡No sé cómo... pero esto funciona!

klewis klewis
3 jun 2019 23:45:27

El filtro woocommerce_show_page_title muestra el título de la página si el argumento proporcionado es true. La función convierte el argumento en true para todas las páginas que "no son la página de tienda" y en false para la página de tienda.

Ryszard Jędraszyk Ryszard Jędraszyk
4 jun 2019 00:18:54

Entendido, pero supongo que nunca estuve en posición de usar return boolval en WordPress para determinar si estaba en la página de tienda o no. Diría que esa parte debería ser más fácil de escribir.

klewis klewis
4 jun 2019 15:05:36

Desafortunadamente, esto no elimina el HTML <header class="woocommerce-products-header"> </header>

InanisAtheos InanisAtheos
27 jul 2021 14:01:38
0

Hola, puedes hacer esto y espero que también te funcione

<?php
    if (!is_shop()) {
      if ( apply_filters( 'woocommerce_show_page_title', true ) ) {  ?>
            <h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
 <?php   }else{ ?>
      <h1 class="page-title"><?php echo ''; ?>
    }
  } ?>

Para más información prefiere este enlace

23 nov 2017 06:24:44
0

Para eliminar el título solo de la página de producto necesitas agregar este código a tus estilos CSS

.product-template-default .woocommerce-products-header {
   display: none;
}
17 jul 2020 14:53:27
0

Algunas formas alternativas de hacerlo:

  1. Eliminar el código del título desde el archivo home.php de tu tema
  2. Crear una plantilla para la página de productos
  3. Para la página de inicio, si estás usando frontpage.php es bastante fácil eliminarlo desde allí. De lo contrario, puedes usar el último punto mencionado más abajo
  4. Ir a tu archivo page.php y escribir una simple declaración condicional para verificar si es la página de inicio o no. Una referencia de esta declaración condicional del codex de WP está aquí

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

23 nov 2017 05:44:39
2

Puedes sobrescribir la plantilla de WooCommerce "archive-product.php" en tu tema actual y reemplazarla con este código.

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

            <?php if(!is_shop()) { ?>
            <h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
            <?php } ?>
<?php endif; ?>

Como referencia etiquetas condicionales de WooCommerce

O

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

                <?php if(is_product_category()) { ?>
                <h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
                <?php } ?>
 <?php endif; ?>
23 nov 2017 05:54:57
Comentarios

Este archivo está en la carpeta de plugins. ¿No cambiar esto no va en contra del propósito de crear un tema hijo? Quiero decir, ¿no puedo cambiar cosas dentro de mi tema hijo para no tener que preocuparme por las actualizaciones o cambios que hagan los plugins?

user7432810 user7432810
23 nov 2017 20:47:34

No, no hay ningún problema con las actualizaciones de plugins cuando sobrescribes plantillas en el tema. Referencia sobre cómo sobrescribir archivos de plantilla de WooCommerce en un tema hijo: https://v4.datafeedr.com/documentation/580

Jignesh Patel Jignesh Patel
24 nov 2017 05:53:05
1

Acabo de hacer esto para mi sitio web, pero de una manera más indirecta.

  1. Edite mi archivo archive-product.php en el editor de archivos del tema y cambié:

<h1 class="entry-title"><?php woocommerce_page_title(); ?></h1>

Por:

<h6 class="entry-title"><?php woocommerce_page_title(); ?></h6>

  1. Luego edité la hoja de estilos y agregué:

h6 {display: none;}

Obviamente no deberías usar esta solución si tienes títulos h6 en tu código, pero para una solución simple, funciona.

16 sept 2022 02:48:07
Comentarios

Podrías simplemente usar h6.entry-title en lugar de un h6 genérico - eso al menos reducirá el alcance de la regla.

Tony Djukic Tony Djukic
27 sept 2022 23:47:54