Căutați o modalitate de a afișa sau ascunde widget-uri pe pagini specifice în WordPress? Deși probabil există un plugin pentru asta, am creat o scurtă secțiune de cod pe care o puteți folosi pentru a afișa sau ascunde widget-uri pe pagini specifice în WordPress.
Primul lucru pe care va trebui să-l faceți este să obțineți numele ID-ului widget-ului pe care doriți să-l definiți. Puteți face acest lucru vizualizând sursa paginii sau folosind un instrument de inspecție web pentru a vizualiza ID-ul widget-ului. Eșantionul curent este configurat pentru a afișa doar widget-ul de bază „pagini” doar pe pagina de contact. Nu uitați că is_page acceptă și un tablou de nume și ID-uri de pagini.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
add_filter( 'widget_display_callback', 'hide_widget_pages', 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == 'pages' ) { // change 'pages' to widget name
if ( !is_page( 'contact' ) ) { // change page name
return false;
}
}
}
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut această secțiune de cod, vă rugăm să luați în considerare verificarea altor articole de pe site, cum ar fi: 30 de modalități de a câștiga bani cu blogging online și cum să creați un formular WordPress cu un selector de dată.
îmi place această secțiune tutorial, mulțumesc!
din păcate, am primit 2 avertismente:
array_merge(): Argumentul #2 nu este un tablou
array_merge(): Argumentul #1 nu este un tablou
a eliminat totuși barele laterale de pe pagina condițională, chiar și cu erori.
încă învăț PHP și nu sunt sigur cum să includ tabloul $args, dacă ați putea, vă rog, să mă sfătuiți... ar fi minunat.
mă întreb, de asemenea, dacă există o modalitate de a elimina 1 (unul) sau mai multe widget-uri specifice, dintr-o bară laterală specificată, fără a le elimina pe toate.
oricum, mulțumesc pentru postarea acestei secțiuni <3
Adăugați un tablou la secțiune?
Hei 🙂
Codul dvs. a funcționat pentru mine pe toate paginile WordPress, dar acest cod nu a funcționat pentru mine pe pagina magazinului WooCommerce. Am un widget de bază pentru bara de căutare de produse în antet pe fiecare pagină, dar vreau să fie doar pe pagina MAGAZINULUI. ID-ul paginii mele de magazin WooCommerce este 552, așa că am folosit acest cod:
add_filter( ‘widget_display_callback’, ‘hide_widget_pages’, 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == ‘woocommerce_product_search’ ) { // schimbați ‘pages’ cu numele widget-ului
if ( !is_page( ‘552’ ) ) { // schimbați numele paginii
return false;
}
}
}
Când adaug un alt ID de pagină, cum ar fi ID-ul paginii Despre noi este 551... dacă setez acest ID, atunci codul dvs. va ascunde bara de căutare a produselor pe toate site-urile, cu excepția paginii Despre noi. Dar când introduc ID-ul paginii MAGAZINULUI, care este 552, atunci bara de căutare lipsește de pe toate paginile, lipsește și de pe pagina magazinului WooCommerce. Mă puteți ajuta, vă rog? Mulțumesc mult 🙂
Ați dori să verificați din nou dacă 552 este ID-ul corect. Dacă este, ați dori să contactați suportul WooCommerce.
Ați putea să-mi spuneți cum să modific secțiunea, astfel încât să pot ascunde mai multe widget-uri pe pagini specifice?
Minunat Joel! Aștept cu nerăbdare să văd mai multe din ceea ce ați lucrat.
Cod foarte util. Mulțumesc pentru distribuire.
Cu plăcere Sajan, Joel Worsham va contribui la wpsnipp.com, așa că sunt sigur că va avea multe secțiuni grozave de oferit.
Îmi place. Mulțumesc pentru distribuire.
Economisește instalarea unui alt plugin.
Foarte adevărat brad, o secțiune drăguță și simplă!