Stai cercando un modo per mostrare o nascondere i widget in pagine specifiche di WordPress? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per mostrare o nascondere i widget in pagine specifiche di WordPress.
La prima cosa che dovrai fare è ottenere il nome ID del widget che desideri definire. Puoi farlo visualizzando il sorgente della pagina o utilizzando uno strumento di ispezione web per visualizzare l'ID del widget. L'esempio corrente è impostato per visualizzare solo il widget principale 'pagine' sulla pagina dei contatti. Non dimenticare che is_page accetta anche un array di nomi e ID di pagina.
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
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;
}
}
}
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: 30 modi per guadagnare con il blogging online e come creare un modulo WordPress con un selettore di data.
adoro questo snippet tutorial, grazie!
purtroppo, ho ricevuto 2 avvisi:
array_merge(): Argument #2 is not an array
array_merge(): Argument #1 is not an array
ha rimosso le barre laterali dalla pagina condizionale, anche con errori.
sto ancora imparando PHP e non sono sicuro di come includere l'array $args, se potessi per favore consigliare... sarebbe meraviglioso.
mi chiedo anche se c'è un modo per rimuovere 1 (uno) o più widget specifici, da una barra laterale specificata senza rimuoverli tutti.
in ogni caso, grazie per aver pubblicato questo snippet <3
Stai aggiungendo un array allo snippet?
Ciao 🙂
Il tuo codice ha funzionato per me in tutte le pagine di WordPress, ma questo codice non ha funzionato per me sulla pagina del negozio WooCommerce. Ho un widget di base per la ricerca prodotti nell'intestazione su ogni pagina, ma voglio che sia solo sulla pagina DEL NEGOZIO. L'ID della mia pagina del negozio WooCommerce è 552, quindi ho usato questo codice:
add_filter( ‘widget_display_callback’, ‘hide_widget_pages’, 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == ‘woocommerce_product_search’ ) { // cambia ‘pages’ con il nome del widget
if ( !is_page( ‘552’ ) ) { // cambia il nome della pagina
return false;
}
}
}
Quando aggiungo un altro ID di pagina come l'ID della pagina Chi siamo è 551... se imposto questo ID, il tuo codice nasconderà la barra di ricerca dei prodotti su tutti i siti tranne la pagina Chi siamo. Ma quando digito l'ID della pagina DEL NEGOZIO che è 552, la barra di ricerca è assente da tutte le pagine, ed è anche assente dalla pagina del negozio di WooCommerce. Puoi aiutarmi per favore? Molte grazie :)
Potresti voler ricontrollare che 552 sia l'ID corretto. Se lo è, potresti voler contattare il supporto WooCommerce.
Potresti farmi sapere come modificare lo snippet in modo da poter nascondere diversi widget in pagine specifiche?
Fantastico Joel! Non vedo l'ora di vedere di più su ciò su cui hai lavorato.
Codice molto utile. Grazie per averlo condiviso.
Nessun problema Sajan, Joel Worsham contribuirà a wpsnipp.com, quindi sono sicuro che avrà molti ottimi snippet in arrivo.
Mi piace. Grazie per aver condiviso.
Risparmia l'installazione di un altro plugin.
Molto vero Brad, snippet bello e semplice!