post

Desativar Pesquisa do Site para Visitantes e Outros Usuários sem Função Administrador no WordPress com PHP

Publicado em: 18/04/2024

Categorias: BlogPHPWordpressWPCode

Caso você tenha um site, que não queira usar a busca padrão do WordPress (Busca acessível pelo parâmetro “s”, por exemplo: www.seusite.com.br/?s=ola) para visitantes ou usuários que não são administradores do site, você pode adicionar esse pequeno trecho de código PHP abaixo em seu site:

// Adiciona ação para prevenir pesquisas não administrativas.
add_action(
    'parse_query',
    function ( $query, $error = true ) {
        if ( !current_user_can( 'manage_options' ) && is_search() && !is_admin() ) {
            $query->is_search       = false;
            $query->query_vars['s'] = false;
            $query->query['s']      = false;
            if ( true === $error ) {
                $query->is_404 = true;
            }
        }
    },
    15,
    2
);

// Remove o Widget de Pesquisa se não for administrador.
add_action(
    'widgets_init',
    function () {
        if ( !current_user_can( 'manage_options' ) ) {
            unregister_widget( 'WP_Widget_Search' );
        }
    }
);

// Remove o formulário de pesquisa se não for administrador.
add_filter(
    'get_search_form',
    function( $form ) {
        return current_user_can( 'manage_options' ) ? $form : '';
    },
    999
);

// Remove o bloco de pesquisa principal se não for administrador.
add_action(
    'init',
    function () {
        if ( ! function_exists( 'unregister_block_type' ) || ! class_exists( 'WP_Block_Type_Registry' ) || current_user_can( 'manage_options' ) ) {
            return;
        }
        $block = 'core/search';
        if ( WP_Block_Type_Registry::get_instance()->is_registered( $block ) ) {
            unregister_block_type( $block );
        }
    }
);

// Remove a caixa de pesquisa da barra de admin se não for administrador.
add_action(
    'admin_bar_menu',
    function ( $wp_admin_bar ) {
        if ( !current_user_can( 'manage_options' ) ) {
            $wp_admin_bar->remove_menu( 'search' );
        }
    },
    11
);

DICA EXTRA: Caso queira adicionar este código em seu site, sem precisar mexer na estrutura de pastas do tema, recomendo o uso do plugin WPCode.

Publicações recomendadas:


Inscreva-se em Nossa News:

Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.

Bruno Devs News


Link Curto para Compartilhamento

Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.

bruno.art.br/pb/4909

ID de Referência: 4909

Sugira uma publicação

Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.

Clique aqui e entre em contato


Comentários