Come disabilitare la ricerca in WordPress

WordPress, come molti già sanno, ha integrato una funzione di ricerca interna per consentire agli utenti di ricercare all’interno dei contenuti le informazioni che occorrono. In passato, abbiamo visto come limitarne o gestirne il campo di applicazione (se non lo hai fatto, ti consiglio di leggere: Limitare la ricerca di WordPress in uno specifico post type) Ma se avessi la necessità di disabilitare questa funzionalità? Come si dovrebbe procedere per farlo in maniera efficace?
- Leggi l'articolo, ti bastano solo 1 minuto, 19 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Sommario
1 Perché disabilitare la ricerca in WordPress |
2 Prima di iniziare |
3 Questione di sicurezza |
4 Disabilitare la funzione di ricerca |
5 Commenti |
Perché disabilitare la ricerca in WordPress
Forse ti starai chiedendo perché dovresti eventualmente disabilitare la ricerca in WordPress. Le risposte possono essere molteplici, ma eccone alcune che mi sono capitate “durante il precorso”:
- Siti aziendali: spesso, si tratta di siti web che offrono una panoramica o una presentazione dell’azienda ed in cui difficilmente un utente può pensare di dover ricercare qualcosa, in quanto potrebbero non esserci servizi e/o prodotti;
- Landing page: qualche volta mi sono imbattuto in landing page sviluppate su base WordPress, per sfruttarne la semplicità del backend. In questo caso, che utilità potrebbe avere un form di ricerca?
- Siti one-page: leggermente più complessi di una landing page, ma il discorso alla base non cambia. Tutte le informazioni sono su una unica pagina, un form di ricerca perde di ogni utilità.
Quindi, se ti sei imbattuto in uno di questi casi, oppure sei semplicemente curioso di capire come disabilitare la ricerca su WordPress, continua la lettura di questo articolo.
Prima di iniziare
È doveroso fare una precisazione. Forse qualcuno si starà chiedendo: ma non sarebbe sufficiente eliminare il widget della ricerca per ovviare al problema? la risposta è “Ni”. Così facendo, sicuramente nasconderesti la possibilità di effettuare una ricerca alla maggior parte degli utenti, ma quelli con una conoscenza più approfondita di WordPress saprebbero come fare. Ti invito ad effettuare un esperimento: prova ad aggiungere alla URL della homepage del tuo sito web la seguente stringa:
?s=test
così da ottenere:
https://www.tuosito.com/?s=test
e digita invio. Visto? In questo modo raggiungerai la pagina dei risultati di ricerca. Questo accade anche se il form di ricerca non è visibile, in quanto è l’handler dei permalink di WordPress che “capisce” che la pagina richiesta fa riferimento ad una ricerca.
Questione di sicurezza
Certo, che l’utente più smaliziato riesca ad effettuare una semplice ricerca non è affatto un problema, ma la considerazione è un’altra: il form di richiesta, come in ogni sito web dinamico, interagisce con il database dello stesso e quindi, senza dilungarci troppo sull’argomento, può essere veicolo per tentativi di accesso e/o violazione del tuo WordPress. Quindi, se non occorre il form di ricerca di WordPress, è bene disattivarne completamente le funzionalità. Ma come fare?
Disabilitare la funzione di ricerca
Ottenere il risultato è piuttosto semplice, ti basta modificare il file:
wp-content/themes/{nome_del_tema}/functions.php
che trovi nello spazio FTP del tuo sito, ed inserire il seguente codice:
// Disabilita la ricerca su WordPress add_filter( 'get_search_form', create_function( '$a', "return null;" ) ); add_action( 'parse_query', function( $query, $error = true ) { if ( is_search() ) { $query->is_search = false; $query->query_vars[s] = false; $query->query[s] = false; if ( $error == true ) { $query->is_404 = true; } } } ); // Rimuove completamente il widget di ricerca add_action( 'widgets_init', function() { unregister_widget('WP_Widget_Search'); } );
In questo modo tutte le richieste, dirette o indirette, di ricerca verranno indirizzate alla pagina 404. Semplice no?