X

Como Mostrar ou Ocultar Widgets em Páginas Específicas no WordPress

Snippets por IsItWP

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.

Comentários   Deixe uma resposta

  1. 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

    1. Você está adicionando um array ao trecho?

  2. 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 🙂

    1. Você pode querer verificar novamente se 552 é o ID correto. Se for, você pode querer entrar em contato com o suporte do WooCommerce.

  3. Você poderia me informar como alterar o snippet para que eu possa ocultar vários widgets em páginas específicas?

  4. Incrível Joel! Aguardarei ansiosamente para ver mais do que você tem trabalhado.

  5. Código muito útil. Obrigado por compartilhar.

    1. Sem problemas Sajan, Joel Worsham vai contribuir para wpsnipp.com, então tenho certeza de que ele terá muitos ótimos snippets para vir.

  6. Gostei. Obrigado por compartilhar.

    Evita a instalação de outro plugin.

    1. Muito verdade brad, snippet bom e simples!

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!