Blog di SearchWP

Tutorial, suggerimenti e risorse di WordPress per aiutarti a far crescere la tua attività

Come Creare una Ricerca Personalizzata in WordPress Senza Plugin

Ti stai chiedendo come creare una ricerca personalizzata in WordPress senza un plugin?

Personalizzando la ricerca sul tuo sito, puoi aumentare il numero di visualizzazioni di pagina, incrementare le tue vendite e aiutare i tuoi visitatori a trovare più velocemente ciò che cercavano.

In questo articolo, parleremo di come puoi personalizzare la ricerca sul tuo sito senza installare un plugin e del perché dovresti comunque considerare l'uso di un plugin per farlo.

Iniziamo!

Perché la Ricerca Personalizzata è Importante per il Tuo Sito WordPress?

Per iniziare, parliamo di come una ricerca personalizzata sul tuo sito può aiutarti a far crescere la tua attività.

Personalizzare la ricerca sul tuo sito ti permette di:

  • Fornire risultati di ricerca più pertinenti. Limita la tua ricerca a categorie specifiche per restringere i risultati e aiutare i visitatori a trovare più velocemente ciò che cercano.
  • Ottenere più visualizzazioni di pagina e vendite. Aumenta la scopribilità dei tuoi contenuti e incrementa le tue entrate promuovendo post o prodotti specifici nei tuoi risultati di ricerca.
  • Costruire un pubblico fedele. I visitatori che hanno avuto un'esperienza di ricerca positiva sul tuo sito sono più propensi a tornare per esplorare altri tuoi contenuti.
  • Generare più traffico dai motori di ricerca. Aiutando i visitatori a trovare i contenuti giusti più velocemente, li fai rimanere più a lungo sul tuo sito, il che è uno dei principali fattori di ranking di Google.

Dopo aver capito quali benefici la ricerca personalizzata può portare alla tua attività, parliamo degli svantaggi che puoi aspettarti se lo fai senza un plugin.

Svantaggi della Creazione di una Ricerca Personalizzata Senza un Plugin

Dovresti considerare un paio di svantaggi importanti se vuoi creare una ricerca personalizzata sul tuo sito senza un plugin.

1. Richiede Competenze di Codifica e Profonda Conoscenza di WordPress

Lo svantaggio principale della personalizzazione manuale della ricerca del tuo sito è che richiede una vasta esperienza di codifica e una profonda conoscenza di WordPress.

Il fatto è che non ci sono strumenti di configurazione della ricerca predefiniti in WordPress.

A causa di ciò, l'unico modo per personalizzare la tua ricerca è modificare i file core di WordPress e il codice del tuo tema.

È scomodo, richiede tempo e non è adatto a persone non esperte di tecnologia.

Inoltre, se fai qualcosa di sbagliato, può portare al crash del tuo sito, quindi dovresti essere molto attento quando personalizzi i file del tuo tema.

2. Avrai Meno Funzionalità

Inoltre, anche se hai ampie competenze di codifica, il numero di funzionalità di ricerca personalizzata che puoi aggiungere senza un plugin è limitato.

Ad esempio, non puoi aggiungere motori di ricerca multipli con un set unico di regole, escludere pagine o categorie specifiche dalla ricerca, gestire l'ordine dei tuoi risultati di ricerca e molto altro.

Quindi, se è fondamentale per te avere il controllo completo su come funziona la ricerca sul tuo sito, dovresti considerare l'uso di un potente plugin di ricerca per WordPress.

3. Potresti Perdere le Tue Modifiche

Infine, poiché la personalizzazione della ricerca senza un plugin richiede la modifica dei file del tuo sito, perderai tutte le modifiche apportate quando aggiornerai il tuo tema o la versione di WordPress.

Il modo migliore per evitare tali situazioni è utilizzare un plugin di ricerca per WordPress, poiché mantiene le tue impostazioni qualunque cosa tu faccia con il tuo sito.

Detto questo, diamo un'occhiata a come puoi personalizzare la ricerca sul tuo sito in pochi clic, senza bisogno di codice e indipendentemente dalle tue competenze tecniche.

Il metodo più semplice per personalizzare la ricerca di WordPress sul tuo sito

Il modo più semplice per personalizzare una ricerca sul tuo sito WordPress è utilizzare un plugin come SearchWP.

SearchWP

SearchWP è il plugin di ricerca per WordPress più apprezzato, di cui si fidano oltre 50.000 proprietari di siti web.

La sua interfaccia intuitiva e le potenti funzionalità ti consentono di personalizzare completamente la tua ricerca anche se stai lanciando il tuo primo sito web.

Ad esempio, con SearchWP, puoi gestire dove WordPress dovrebbe cercare le corrispondenze, limitare la ricerca a un tipo specifico di contenuto, abilitare la ricerca per tag e campi personalizzati, e molto altro.

La cosa migliore è che puoi fare la maggior parte di queste cose in pochi clic.

Puoi anche usare SearchWP per:

Dopo aver appreso perché SearchWP è il miglior plugin di ricerca per WordPress, vediamo come puoi usarlo per personalizzare la ricerca sul tuo sito in base alle tue esigenze.

Passaggio 1: Installa e attiva SearchWP

Il primo passo è andare sul sito web di SearchWP e scaricare la tua copia di SearchWP.

Una volta fatto, vai semplicemente alla dashboard del tuo account SearchWP e fai clic su Download.

Scarica il plugin SearchWP dall'area account

Quindi, puoi premere il pulsante Download SearchWP e salvare il plugin sul tuo computer.

Dopo il download, ti suggeriamo anche di copiare la tua chiave di licenza SearchWP nell'angolo in basso a sinistra.

Successivamente, dovrai installare SearchWP sul tuo sito. Se hai bisogno di aiuto, puoi seguire la nostra guida dettagliata su come installare un plugin per WordPress.

Dopo di che, vedrai la schermata di benvenuto e la procedura guidata di configurazione di SearchWP. Fai clic sul pulsante 'Avvia procedura guidata di onboarding' e segui le istruzioni sullo schermo.

Procedura guidata di onboarding SearchWP

Passaggio 2: Inizia a personalizzare la tua ricerca

Successivamente, puoi aggiungere, rimuovere e personalizzare i motori di ricerca in SearchWP. Pensali come un insieme di regole che verranno seguite durante l'esecuzione di una ricerca sul tuo sito.

Personalizzando il motore, puoi gestire l'elenco delle tue origini di ricerca, fare in modo che consideri nuovi attributi di contenuto, limitare la ricerca a categorie specifiche e altro ancora.

Con SearchWP, puoi aggiungere un numero illimitato di motori di ricerca e collegarli a singoli moduli di ricerca sul tuo sito.

Grazie a ciò, puoi creare rapidamente moduli di ricerca personalizzati per varie esigenze aziendali e posizionarli ovunque desideri sul tuo sito.

Poiché in questo tutorial vogliamo personalizzare il funzionamento della ricerca in tutto il sito, modificheremo il motore di ricerca Default.

Innanzitutto, specifichiamo dove WordPress cercherà i contenuti configurando il suo elenco di origini di ricerca.

Gestisci le tue origini di ricerca

Per iniziare, vai su SearchWP » Algoritmo dal tuo pannello di controllo WordPress. 

Da qui, puoi premere il pulsante Origini e Impostazioni.

Modifica o aggiungi nuovi motori di ricerca in WordPress

Qui puoi gestire quali origini includere nel processo di ricerca.

Per impostazione predefinita, cerca tra Post, Pagine e File multimediali.

Scegli le origini della ricerca

Per rimuovere un'origine di ricerca, puoi deselezionare una casella accanto ad essa. Ad esempio, limitiamo la ricerca sul nostro sito ai soli post.

Per fare ciò, deselezioneremo tutte le altre origini tranne Post e quindi faremo clic su Fatto per salvare le modifiche.

Seleziona i post come unica origine

Una volta impostato il nostro elenco di origini di ricerca, miglioriamo anche la nostra ricerca facendo in modo che WordPress consideri gli attributi dei post e le tassonomie.

Configura i tuoi attributi di ricerca

Per iniziare, puoi fare clic sul pulsante Aggiungi/Rimuovi Attributi nella sezione di origine di ricerca Post.

Aggiungi attributo per il post

Nella finestra successiva, puoi specificare attributi come campi personalizzati e tassonomie che desideri che SearchWP consideri durante l'esecuzione di una ricerca.

Per impostazione predefinita, includerà titolo, contenuto, slug, estratto e autore come attributi.

Attributi del post

Per rendere ricercabile un campo personalizzato specifico, puoi fare clic sul campo Campi personalizzati e inserirne il nome.

Allo stesso modo, puoi anche includere tassonomie come tag e categorie per l'origine.

Per rendere ricercabile una nuova tassonomia, fai clic sul campo Tassonomie e seleziona la tassonomia desiderata.

Ad esempio, facciamo in modo che WordPress consideri i tag dei post durante l'esecuzione di una ricerca. Per fare ciò, scegli l'opzione Tag dal menu a discesa.

Seleziona i tag dei post

Dopo aver finito di gestire gli attributi dell'origine Post, premi Fatto per salvare le modifiche.

Ora, vediamo come puoi restringere la ricerca per fornire ai tuoi visitatori risultati più pertinenti.

Limita la ricerca a una categoria di post specifica

Per iniziare, vai avanti e premi il pulsante Modifica Regole per la tua origine.

Modifica le regole per i risultati della ricerca

Ora si aprirà una nuova finestra.

Fai semplicemente clic sul pulsante Aggiungi Regola.

Aggiungi nuova regola di ricerca

Qui puoi aggiungere regole secondo cui WordPress filtrerà i contenuti nei risultati di ricerca.

Ad esempio, puoi aggiungere una regola per escludere categorie specifiche dalla tua ricerca o limitare la tua ricerca ad esse.

Supponiamo di voler limitare la ricerca sul nostro sito di prova alla categoria Notizie.

Per fare ciò, assicurati prima di scegliere l'opzione Escludi voci se: e quindi scegli la tassonomia Categorie.

Da qui, è possibile inserire il nome di una categoria a cui si desidera limitare la ricerca nel campo più a destra. Nel nostro caso, sarà Notizie.

Imposta regole di esclusione

Dopo aver terminato la personalizzazione delle regole del tuo motore di ricerca, fai clic su Fatto per salvare le modifiche.

Quando sei soddisfatto di come hai personalizzato la tua ricerca, sei pronto per passare alla fase finale e salvare il tuo motore di ricerca.

Salva il tuo motore di ricerca

Per fare ciò, premi il pulsante Salva nell'angolo in alto a destra della tua dashboard di SearchWP.

Salva impostazioni del motore

Ecco fatto. Hai personalizzato completamente la ricerca in base alle tue esigenze senza scrivere una sola riga di codice.

Testiamo la tua nuova ricerca per assicurarci che funzioni secondo le tue personalizzazioni.

Passaggio 3: Testa la tua nuova ricerca

Per iniziare, vai sul tuo sito web ed esegui una ricerca di prova.

Ad esempio, poiché abbiamo reso ricercabili i tag dei post, proviamo a trovare un post solo tramite i suoi tag.

Sul nostro sito di prova, abbiamo un post chiamato "Nuove funzionalità di WordPress", che ha il tag "Aggiornamenti".

Cerchiamo tramite questo tag e vediamo se riusciamo a trovare il nostro post.

premi Trova Risultati

Abbiamo trovato il post anche se non c'è la parola "aggiornamenti" nel suo titolo, estratto o contenuto.

Ciò significa che il nostro motore di ricerca ora considera i tag dei post quando cerca corrispondenze.

abbiamo trovato il post

Assicuriamoci anche che la ricerca sul nostro sito sia ora limitata alla categoria "Notizie".

Per fare ciò, cercheremo "WordPress", poiché abbiamo molti post relativi a WordPress in altre categorie.

fai un'altra ricerca

Puoi vedere che solo i post della categoria Notizie vengono visualizzati tra i risultati di ricerca che abbiamo ottenuto.

Ciò significa che la regola che abbiamo aggiunto al nostro motore di ricerca, che dice che WordPress dovrebbe cercare solo tra le notizie, funziona come dovrebbe.

abbiamo trovato i post giusti

Quindi, hai appena imparato il modo più semplice per personalizzare la tua ricerca. Ora vediamo come puoi farlo senza usare un plugin.

Crea una ricerca personalizzata in WordPress senza un plugin

Per personalizzare la tua ricerca senza un plugin, dovrai apportare modifiche al tuo tema.

Il modo più sicuro per farlo è creare un tema figlio del tema corrente che stai utilizzando sul tuo sito.

In questo modo, quando apporti modifiche a un tema figlio, il tuo tema padre rimane intatto, permettendoti di passare rapidamente ad esso in caso di errori critici.

Inoltre, avere un tema figlio ti consente di aggiornare il tuo tema padre senza perdere le tue modifiche. Per maggiori dettagli su come creare un tema figlio, consulta questo tutorial su come creare un tema figlio.

Suggerimento Pro: Puoi anche utilizzare un plugin di backup di WordPress per assicurarti di avere una copia fresca del tuo sito pronta da ripristinare in caso qualcosa vada storto.

Dopo aver creato e attivato un tema figlio, sei pronto per iniziare a personalizzare la tua ricerca.

Per iniziare, naviga su Aspetto » Editor file del tema nella tua bacheca di WordPress. Quindi, trova il file functions.php nel pannello di destra e fai clic su di esso.

Se non ti senti a tuo agio a modificare i file del tema, ti consigliamo di utilizzare WPCode. Ti aiuta a inserire codice personalizzato sul tuo sito senza rischiare di danneggiare nulla. Puoi consultare questa guida su come copiare e incollare snippet di codice dal web in WordPress.

Apri il file functions.php

Successivamente, segui le istruzioni qui sotto a seconda delle personalizzazioni che desideri apportare alla ricerca sul tuo sito.

Abilita la ricerca di post per tag e categorie

Per rendere i tag e le categorie dei post ricercabili sul tuo sito senza un plugin, dovrai aggiungere il seguente codice al file functions.php del tuo tema.

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search Posts by Tags and Categories
 *
 * ----------------------------------------------------------
 */

/**
 * Join the terms, term_relationship, and term_taxonomy tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= &amp;amp;amp;quot;
    LEFT JOIN
    (
        {$wpdb-&amp;amp;amp;gt;term_relationships}
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;term_taxonomy} ON {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_taxonomy_id = {$wpdb-&amp;amp;amp;gt;term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb-&amp;amp;amp;gt;terms} ON {$wpdb-&amp;amp;amp;gt;terms}.term_id = {$wpdb-&amp;amp;amp;gt;term_taxonomy}.term_id
    )
    ON {$wpdb-&amp;amp;amp;gt;posts}.ID = {$wpdb-&amp;amp;amp;gt;term_relationships}.object_id &amp;amp;amp;quot;;

	return $join;
}

add_filter( 'posts_join', 'search_custom_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against taxonomies.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	// Get additional where clause for the user.
	$user_where = '';

	$user_id = get_current_user_id();
	$status  = array( &amp;amp;amp;quot;'publish'&amp;amp;amp;quot; );

	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status&#x5B;]    = &amp;amp;amp;quot;'private'&amp;amp;amp;quot;;
		$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_author = {$user_id}&amp;amp;amp;quot;;
	}

	$user_where .= &amp;amp;amp;quot; AND {$wpdb-&amp;amp;amp;gt;posts}.post_status IN( &amp;amp;amp;quot; . implode( ',', $status ) . &amp;amp;amp;quot; ) &amp;amp;amp;quot;;

	$where .= &amp;amp;amp;quot; OR (
                    {$wpdb-&amp;amp;amp;gt;term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb-&amp;amp;amp;gt;terms}.name LIKE '%&amp;amp;amp;quot; . esc_sql( get_query_var( 's' ) ) . &amp;amp;amp;quot;%'
                    {$user_where}
                )&amp;amp;amp;quot;;

	return $where;
}

add_filter( 'posts_where', 'search_custom_posts_where', 10, 2 );

/**
 * Set the GROUP BY clause to post IDs.
 *
 * @global $wpdb
 *
 * @param string   $groupby The GROUPBY clause.
 * @param WP_Query $query   The current WP_Query instance.
 *
 * @return string The GROUPBY clause.
 */
function search_custom_posts_groupby( $groupby, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $groupby;
	}

	return &amp;amp;amp;quot;{$wpdb-&amp;amp;amp;gt;posts}.ID&amp;amp;amp;quot;;
}

add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );
</pre>




Al termine, premi il pulsante Aggiorna file per salvare le modifiche.

premi Fatto

Ora i visitatori del tuo sito possono cercare post per tag e categorie.

Abilita la ricerca per contenuto dei commenti e nomi degli autori

Per rendere i commenti e i nomi degli autori ricercabili sul tuo sito senza un plugin, aggiungi il seguente codice al file functions.php del tuo tema:

/*
 * ----------------------------------------------------------
 *
 * Search by Comment Content and Author Names
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the comments and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_comments_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .= ' LEFT JOIN ' . $wpdb-&amp;amp;amp;gt;comments . ' ON ' . $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;comments . '.comment_post_ID ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_comments_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against comments.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_comments_posts_where( $where, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_author LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;comments . &amp;amp;amp;quot;.comment_content LIKE $1)&amp;amp;amp;quot;,
		$where
	);

	return $where;
}

add_filter( 'posts_where', 'search_custom_comments_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_comments_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_comments_posts_distinct', 10, 2 );

Al termine, fai clic sul pulsante Aggiorna file in fondo all'editor per salvare le modifiche.

fai clic su Fatto

Ora i tuoi visitatori possono cercare per contenuto dei commenti e nomi degli autori.

Abilita la ricerca per campi personalizzati dei post

Per rendere i campi personalizzati ricercabili sul tuo sito senza un plugin, aggiungi il seguente codice al file functions.php del tuo tema:

<pre class="wp-block-syntaxhighlighter-code">
/*
 * ----------------------------------------------------------
 *
 * Search by Post Custom Fields
 *
 * ----------------------------------------------------------
 */

/**
 * Joins the postmeta and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_meta_posts_join( $join, $query ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}

	$join .=' LEFT JOIN '.$wpdb-&amp;amp;amp;gt;postmeta. ' ON '. $wpdb-&amp;amp;amp;gt;posts . '.ID = ' . $wpdb-&amp;amp;amp;gt;postmeta . '.post_id ';

	return $join;
}

add_filter( 'posts_join', 'search_custom_meta_posts_join', 10, 2 );

/**
 * Modify the WHERE clause to include searches against postmeta.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_meta_posts_where( $where ) {

	global $wpdb;

	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}

	$where = preg_replace(
		&amp;amp;amp;quot;/\(\s*&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title\s+LIKE\s*(\'&#x5B;^\']+\')\s*\)/&amp;amp;amp;quot;,
		&amp;amp;amp;quot;(&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;posts . &amp;amp;amp;quot;.post_title LIKE $1) OR (&amp;amp;amp;quot; . $wpdb-&amp;amp;amp;gt;postmeta . &amp;amp;amp;quot;.meta_value LIKE $1)&amp;amp;amp;quot;, $where );

	return $where;
}

add_filter( 'posts_where', 'search_custom_meta_posts_where', 10, 2 );

/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_meta_posts_distinct( $distinct, $query ) {

	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}

	return 'DISTINCT';
}

add_filter( 'posts_distinct', 'search_custom_meta_posts_distinct', 10, 2 );
</pre>




Una volta fatto, premi il pulsante Aggiorna file in fondo all'editor per salvare le modifiche.

premi Fatto

Ora i tuoi visitatori possono cercare post per campi personalizzati.

Speriamo che questo articolo ti abbia aiutato a imparare come creare una ricerca personalizzata sul tuo sito senza un plugin. Potresti anche voler consultare la nostra guida su come creare un tema WordPress personalizzato e come personalizzare la pagina dei risultati di ricerca di WordPress.

Pronto a personalizzare la ricerca sul tuo sito in pochi clic? Puoi iniziare con SearchWP qui.

avatar autore
Aazim Akhtar

Crea Oggi Stesso una Migliore Esperienza di Ricerca WordPress

Non perdere mai più visitatori a causa di risultati di ricerca inutili. SearchWP rende la creazione della tua ricerca intelligente WordPress veloce e facile.

Get SearchWP Now
Icona di motori di ricerca multipli