Você está procurando uma maneira de mostrar ou ocultar widgets em páginas específicas do WordPress? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para mostrar ou ocultar widgets em páginas específicas do WordPress.
A primeira coisa que você precisará fazer é obter o nome do ID do widget que deseja definir. Você pode fazer isso visualizando o código-fonte da página ou usando uma ferramenta de inspeção da web para ver o ID do widget. O exemplo atual está configurado para exibir apenas o widget principal de 'páginas' na página de contato. Não se esqueça que is_page também aceita um array de nomes e IDs de página.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
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;
}
}
}
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 30 maneiras de ganhar dinheiro com blogs online e como criar um formulário WordPress com um seletor de data.
Adorei este trecho de tutorial, obrigado!
infelizmente, recebi 2 avisos:
array_merge(): Argument #2 is not an array
array_merge(): Argument #1 is not an array
ele removeu as barras laterais da página condicional, mesmo com erros.
ainda estou aprendendo PHP e não tenho certeza de como incluir o array $args, se você puder me aconselhar... seria maravilhoso.
também estou me perguntando se há uma maneira de remover 1 (um) ou mais widgets específicos, de uma barra lateral especificada sem remover todos.
de qualquer forma, obrigado por postar este trecho <3
Você está adicionando um array ao trecho?
Olá 🙂
Seu código funcionou para mim em todas as páginas do WordPress, mas este código não funcionou para mim na página da loja WooCommerce. Tenho um widget básico de barra de pesquisa de produtos no cabeçalho em todas as páginas, mas só quero que ele esteja na página DA LOJA. O ID da minha página da loja WooCommerce é 552, então usei este código:
add_filter( ‘widget_display_callback’, ‘hide_widget_pages’, 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == ‘woocommerce_product_search’ ) { // change ‘pages’ to widget name
if ( !is_page( ‘552’ ) ) { // change page name
return false;
}
}
}
Quando adiciono outro ID de página como a página Sobre Nós, cujo ID é 551… se eu definir este ID, seu código ocultará a barra de pesquisa de produtos em todos os sites, exceto na página Sobre Nós. Mas quando digito o ID da página da LOJA, que é 552, a barra de pesquisa desaparece de todas as páginas, inclusive da página da loja do WooCommerce. Você pode me ajudar, por favor? Muito obrigado 🙂
Você pode querer verificar novamente se 552 é o ID correto. Se for, você pode querer entrar em contato com o suporte do WooCommerce.
Você poderia me informar como alterar o snippet para que eu possa ocultar vários widgets em páginas específicas?
Incrível Joel! Aguardarei ansiosamente para ver mais do que você tem trabalhado.
Código muito útil. Obrigado por compartilhar.
Sem problemas Sajan, Joel Worsham vai contribuir para wpsnipp.com, então tenho certeza de que ele terá muitos ótimos snippets para vir.
Gostei. Obrigado por compartilhar.
Evita a instalação de outro plugin.
Muito verdade brad, snippet bom e simples!