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
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.
Primera solución: Agregué el siguiente código a mi estilo:
.woocommerce-page .page-title { display: none; }
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.

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.

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.

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

Algunas formas alternativas de hacerlo:
- Eliminar el código del título desde el archivo home.php de tu tema
- Crear una plantilla para la página de productos
- 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
- 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/

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; ?>

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?

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

Acabo de hacer esto para mi sitio web, pero de una manera más indirecta.
- 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>
- 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.
