WooCommerce: Cum să elimini page-title de pe pagina principală/magazin dar nu și de pe paginile de categorie

23 nov. 2017, 04:20:19
Vizualizări: 43.3K
Voturi: 7

Am setat pagina "magazin" ca pagină principală și vreau să elimin titlul implicit WooCommerce de pe pagina principală a site-ului. Am golit titlul dar tot primesc o etichetă goală ca aceasta pe pagina principală:

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

Aceasta creează o zonă goală deasupra conținutului care este deranjantă. Am încercat următoarele soluții și funcționează DAR titlul paginii pentru paginile de categorii ar fi și el eliminat. Vreau ca titlul să fie eliminat doar pe pagina principală.

  1. Prima soluție: Am adăugat următorul cod în stilul meu:

    .woocommerce-page .page-title {
    
     display: none;
    
    }
    
  2. Am adăugat următorul cod în functions.php

    add_filter('woocommerce_show_page_title', '__return_false');
    

Repet, aceste soluții fac ceea ce ar trebui să facă, dar vreau ca page-title pentru categorii să rămână și doar titlul pentru pagina principală să fie eliminat.

1
Comentarii

atenție, acest filtru funcționează doar dacă declari suportul pentru temă. am înnebunit încercând să înțeleg de ce nu funcționa deloc pentru mine..

honk31 honk31
13 mar. 2019 19:06:16
Toate răspunsurile la întrebare 6
4

În loc să modifici șabloanele, poți adăuga acest cod în fișierul functions.php al temei copil:

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
Comentarii

Nu știu cum... dar funcționează!

klewis klewis
3 iun. 2019 23:45:27

Filtrul woocommerce_show_page_title afișează titlul paginii dacă argumentul furnizat este true. Funcția transformă argumentul în true pentru toate paginile care "nu sunt pagina magazin" și în false pentru pagina magazin.

Ryszard Jędraszyk Ryszard Jędraszyk
4 iun. 2019 00:18:54

Am înțeles, dar cred că nu am fost niciodată într-o situație în care să folosesc return boolval în WordPress pentru a determina dacă sunt pe pagina magazin sau nu. Aș argumenta că acea parte ar trebui să fie mai ușor de scris.

klewis klewis
4 iun. 2019 15:05:36

Din păcate, acest lucru nu elimină HTML-ul <header class="woocommerce-products-header"> </header>

InanisAtheos InanisAtheos
27 iul. 2021 14:01:38
0

Bună, poți face acest lucru și sper că va funcționa și pentru tine

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

Pentru mai multe informații accesează acest link

23 nov. 2017 06:24:44
0

Pentru a elimina titlul doar de pe pagina de produs, trebuie să adaugi acest cod în fișierul tău de stiluri CSS

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

Câteva metode alternative pentru a face acest lucru:

  1. Eliminați codul de titlu din home.php al temei dumneavoastră
  2. Creați un șablon pentru pagina de produse
  3. Pentru pagina de start, dacă utilizați frontpage.php, atunci este destul de ușor să-l eliminați de acolo. Altfel, puteți folosi ultimul punct menționat mai jos
  4. Accesați page.php și scrieți o instrucțiune condițională simplă pentru a verifica dacă este vorba de pagina de start sau nu. O referință pentru această instrucțiune condițională din WP codex se găsește aici

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

23 nov. 2017 05:44:39
2

poți suprascrie șablonul WooCommerce "archive-product.php" în tema ta curentă și înlocui cu acest cod.

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

Pentru referință eticheta condițională a WooCommerce

SAU

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

Acest fișier se află în directorul de pluginuri. Nu anulează modificarea lui scopul creării unei teme copil? Adică, nu pot schimba lucrurile în tema mea copil, astfel încât să nu trebuiască să mă îngrijorez de actualizările sau modificările pe care le pot crea pluginurile?

user7432810 user7432810
23 nov. 2017 20:47:34

da, nu există nicio problemă cu actualizările pluginurilor atunci când suprascrieți șablonul în temă. referință pentru modul de suprascriere a fișierului de șablon WooCommerce în tema copil: https://v4.datafeedr.com/documentation/580

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

Tocmai am făcut asta pentru site-ul meu, dar într-un mod mai ocolit.

  1. Am editat fișierul archive-product.php în editorul de fișiere al temei și am schimbat:

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

În:

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

  1. Apoi am editat pagina de stiluri și am adăugat:

h6 {display: none;}

Evident, nu ar trebui să folosești această soluție dacă ai titluri h6 în codul tău, dar pentru o soluție simplă, funcționează.

16 sept. 2022 02:48:07
Comentarii

Ai putea folosi h6.entry-title în loc de un h6 generic - asta cel puțin va reduce domeniul de aplicare al regulii.

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