WooCommerce: Come rimuovere il titolo della pagina nella home/shop ma non nelle pagine delle categorie

23 nov 2017, 04:20:19
Visualizzazioni: 43.3K
Voti: 7

Ho impostato la pagina "shop" come pagina iniziale e voglio rimuovere il titolo predefinito di WooCommerce dalla home page del sito. Ho svuotato il titolo ma ottengo ancora un tag vuoto come questo nella home page:

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

Questo crea un'area vuota sopra il contenuto che è fastidiosa. Ho provato le seguenti soluzioni e funzionano MA il titolo della pagina verrebbe rimosso anche per le pagine delle categorie. Voglio che il titolo venga rimosso solo nella home page.

  1. Prima soluzione: Ho aggiunto il seguente codice al mio foglio di stile:

    .woocommerce-page .page-title {
        display: none;
    }
    
  2. Ho aggiunto il seguente codice al file functions.php

    add_filter('woocommerce_show_page_title', '__return_false');
    

Ripeto, queste soluzioni fanno quello che dovrebbero ma voglio che il titolo della pagina per le categorie rimanga e venga rimosso solo il titolo della home page.

1
Commenti

attenzione che questo filtro funziona solo se dichiari il supporto per il tema. stavo impazzendo nel cercare di capire perché non funzionasse per me...

honk31 honk31
13 mar 2019 19:06:16
Tutte le risposte alla domanda 6
4

Invece di modificare i template, puoi inserire questo nel file functions.php del tuo child theme:

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
Commenti

Non so come...ma funziona!

klewis klewis
3 giu 2019 23:45:27

Il filtro woocommerce_show_page_title mostra il titolo della pagina se l'argomento fornito è true. La funzione imposta l'argomento a true per tutte le pagine che "non sono la pagina del negozio" e false per la pagina del negozio.

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

Capito, ma credo di non essermi mai trovato nella posizione di usare return boolval in WordPress per determinare se ero nella pagina del negozio o meno. Direi che quella parte dovrebbe essere più semplice da scrivere.

klewis klewis
4 giu 2019 15:05:36

Sfortunatamente, questo non rimuove l'HTML <header class="woocommerce-products-header"> </header>

InanisAtheos InanisAtheos
27 lug 2021 14:01:38
0

Ciao, puoi fare questa cosa e spero che funzioni anche per te

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

Per maggiori informazioni preferisci questo link

23 nov 2017 06:24:44
0

Per rimuovere il titolo solo dalla pagina del prodotto è necessario aggiungere questo codice ai tuoi stili CSS

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

Alcuni modi alternativi per farlo:

  1. Rimuovi il codice del titolo dal file home.php del tuo tema
  2. Crea un template per la pagina dei prodotti
  3. Per la homepage, se stai usando frontpage.php è abbastanza semplice rimuoverlo da lì. Altrimenti, puoi usare l'ultimo punto menzionato sotto
  4. Vai al tuo page.php e scrivi una semplice istruzione condizionale per verificare se si tratta della homepage o meno. Un riferimento a questa istruzione condizionale dal codice WP è qui

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

23 nov 2017 05:44:39
2

Puoi sovrascrivere il template di WooCommerce "archive-product.php" nel tuo tema corrente e sostituirlo con questo codice.

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

Per riferimento tag condizionali di WooCommerce

OPPURE

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

Questo file si trova nella cartella dei plugin. Modificarlo non va contro lo scopo di creare un tema child? Voglio dire, non posso modificare le cose all'interno del mio tema child così da non dovermi preoccupare di eventuali aggiornamenti o modifiche apportate dai plugin?

user7432810 user7432810
23 nov 2017 20:47:34

No, non ci sono problemi con gli aggiornamenti dei plugin quando si sovrascrivono i template nel tema. Ecco un riferimento su come sovrascrivere i file template di Woocommerce in un tema child: https://v4.datafeedr.com/documentation/580

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

Ho appena fatto questo per il mio sito web, ma in un modo più indiretto.

  1. Ho modificato il mio file archive-product.php nell'editor dei file del tema e ho cambiato:

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

In:

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

  1. Poi ho modificato il foglio di stile e ho aggiunto:

h6 {display: none;}

Ovviamente non dovresti usare questa soluzione se hai titoli h6 nel tuo codice, ma per una soluzione semplice, funziona.

16 set 2022 02:48:07
Commenti

Potresti semplicemente usare h6.entry-title invece di un generico h6 - almeno questo ridurrà l'ambito della regola.

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