Come creare una ricerca personalizzata in WordPress senza un plug-in

Pubblicato: 2022-07-25

Ti chiedi come creare una ricerca personalizzata in WordPress senza un plug-in?

Personalizzando la ricerca sul tuo sito, puoi aumentare il numero di visualizzazioni di pagina, aumentare le vendite e aiutare i tuoi visitatori a trovare ciò per cui sono venuti più velocemente.

In questo articolo parleremo di come personalizzare la ricerca sul tuo sito senza installare un plug-in e perché dovresti comunque considerare l'utilizzo di un plug-in per farlo.

Ecco un sommario per aiutarti a navigare rapidamente in questo articolo:

  • Perché la ricerca personalizzata è importante per il tuo sito Web WordPress?
  • Svantaggi della creazione di una ricerca personalizzata senza un plug-in
  • Il metodo più semplice per personalizzare la ricerca di WordPress sul tuo sito
  • Crea una ricerca personalizzata in WordPress senza un plug-in

Cominciamo!

Perché la ricerca personalizzata è importante per il tuo sito Web WordPress?

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

La personalizzazione della ricerca sul tuo sito ti consente di:

  • Fornisci risultati di ricerca più pertinenti . Limita la ricerca a categorie specifiche per restringere i risultati di ricerca e aiutare i visitatori a trovare ciò che stanno cercando più velocemente.
  • Ottieni più visualizzazioni di pagina e vendite . Aumenta la rilevabilità dei tuoi contenuti e aumenta le tue entrate promuovendo post o prodotti specifici nei risultati di ricerca.
  • Costruisci un pubblico fedele . È più probabile che i visitatori che hanno avuto un'esperienza di ricerca positiva sul tuo sito tornino di nuovo per esplorare altri tuoi contenuti.
  • Indirizza 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, che è uno dei principali fattori di ranking in Google.

Dopo aver capito quali vantaggi può portare la ricerca personalizzata alla tua attività, parliamo di quali svantaggi puoi aspettarti se lo fai senza un plug-in.

Svantaggi della creazione di una ricerca personalizzata senza un plug-in

Dovresti considerare un paio di importanti inconvenienti se desideri creare una ricerca personalizzata sul tuo sito senza un plug-in.

1. Richiede abilità di codifica e profonda conoscenza di WordPress

Lo svantaggio principale della personalizzazione manuale della ricerca sul 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.

Per questo motivo, l'unico modo per personalizzare la tua ricerca è modificare i file core di WordPress e il codice del tuo tema.

È scomodo, dispendioso in termini di 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 stare molto attento quando personalizzi i file del tuo tema.

2. Avrai meno funzioni

Inoltre, anche se hai competenze di programmazione estese, il numero di funzioni di ricerca personalizzate che puoi aggiungere senza plug-in è limitato.

Ad esempio, non puoi aggiungere più motori di ricerca con un insieme univoco di regole, escludere pagine o categorie specifiche dalla ricerca, gestire l'ordine dei risultati di ricerca e molti altri.

Quindi, se è fondamentale per te avere il controllo completo su come funziona la ricerca sul tuo sito, dovresti prendere in considerazione l'utilizzo di un potente plug-in di ricerca di WordPress.

3. Potresti perdere le modifiche

Infine, poiché la personalizzazione della ricerca senza plug-in richiede di apportare modifiche ai file del tuo sito, perderai tutte le modifiche apportate quando aggiorni il tema o la versione di WordPress.

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

Detto questo, diamo un'occhiata a come personalizzare la ricerca sul tuo sito in pochi clic, senza bisogno di codifica e indipendentemente dalle tue capacità 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 plug-in come SearchWP.

SearchWP logo

SearchWP è il plug-in di ricerca WordPress più votato, considerato affidabile da oltre 30.000 proprietari di siti Web.

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

Ad esempio, con SearchWP, puoi gestire dove cercare le corrispondenze di WordPress, 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 utilizzare SearchWP per:

  • Mostra i risultati della ricerca in modalità live . Abilita la visualizzazione in tempo reale dei risultati di ricerca sul tuo sito in modo che i tuoi visitatori possano navigare istantaneamente verso il contenuto che desiderano.
  • Tieni traccia delle ricerche dei tuoi visitatori . Raccogli dati su ciò che i visitatori cercano sul tuo sito, quali risultati sono più cliccabili e altri dati preziosi.
  • Evidenzia i termini di ricerca nei risultati di ricerca . Aiuta i tuoi visitatori a capire più velocemente se hanno trovato il contenuto giusto evidenziando le parole chiave nei risultati di ricerca.
  • Escludi pagine specifiche dalla ricerca . Elimina il disordine nei risultati di ricerca sul tuo sito escludendo le pagine ridondanti e i contenuti obsoleti.

Dopo aver appreso perché SearchWP è il miglior plug-in di ricerca di 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 a prendere la tua copia di SearchWP qui.

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

go to the Downloads tab

Quindi, premi il pulsante Scarica SearchWP e salva il plug-in sul tuo computer.

click Download SearchWP

Dopo il download, copia la chiave di licenza di SearchWP nell'angolo in basso a sinistra.

copy your license key

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

Una volta che SearchWP è attivo e funzionante sul tuo sito, il passaggio successivo consiste nell'attivare la tua copia del plug-in.

Per farlo, vai alla dashboard di WordPress e fai clic su Attiva licenza sotto il pulsante SearchWP nel pannello superiore.

click Activate License

Successivamente, inserisci la tua chiave di licenza nel campo Licenza e premi Attiva .

press Activate

Dopo aver attivato la tua copia di SearchWP, sei pronto per iniziare a personalizzare la tua ricerca.

Passaggio 2: inizia a personalizzare la tua ricerca

Per iniziare, fai clic su Motori nelle impostazioni di SearchWP.

go to Engines

Puoi aggiungere, rimuovere e personalizzare i tuoi motori di ricerca in questa scheda.

your search engines

SearchWP crea automaticamente il motore di ricerca predefinito dopo l'installazione.

È collegato a ogni modulo di ricerca esistente, quindi personalizzandolo puoi controllare il funzionamento della ricerca nel tuo sito.

Ad esempio, puoi gestire l'elenco delle tue fonti di ricerca, fare in modo che WordPress 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 dove vuoi sul tuo sito.

Poiché in questo tutorial vogliamo personalizzare il funzionamento della ricerca nell'intero sito, modificheremo il motore di ricerca predefinito .

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

Gestisci le tue fonti di ricerca

Per iniziare, premi il pulsante Fonti e impostazioni nella sezione Motore di ricerca predefinito .

click Sources and Settings

Qui puoi gestire dove WordPress dovrebbe cercare le corrispondenze. Per impostazione predefinita, effettua la ricerca tra Post , Pagine e File multimediali .

uncheck search sources

Per rimuovere una fonte di ricerca, deseleziona una casella accanto ad essa. Ad esempio, limitiamo la ricerca sul nostro sito ai soli post.

Per fare ciò, deselezioniamo tutte le altre fonti eccetto Post e quindi faremo clic su Fine per salvare le modifiche.

left only Posts search source active

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

Configura i tuoi attributi di ricerca

Per iniziare, fai clic sul pulsante Aggiungi/Rimuovi attributi nella sezione Sorgente di ricerca post .

click Add Remove attributes

Nella finestra visualizzata, puoi specificare gli attributi e le tassonomie che vuoi che WordPress tenga in considerazione quando esegui una ricerca.

add new attributes

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

click on the Custom Fields field

C'è anche la scorciatoia Any Meta Key , aggiungendo che puoi rendere ricercabili tutti i campi di ricerca esistenti contemporaneamente.

click Add Any Meta key

Quando hai finito di aggiungere campi personalizzati, creiamo anche le tassonomie degli indici di WordPress.

In WordPress, le tassonomie sono un metodo per classificare contenuti e dati. Ad esempio, potrebbero essere categorie di post, tag, formato o qualcos'altro.

Per rendere ricercabile una nuova tassonomia, fare clic sul campo Tassonomie e selezionare la tassonomia desiderata.

click on the Taxonomies field

Ad esempio, facciamo in modo che WordPress consideri i tag dei post quando esegui una ricerca. Per farlo, scegli l'opzione Tag dal menu a discesa.

choose the Tags taxonomy

Puoi anche fare in modo che WordPress ignori gli attributi dei post predefiniti come Titolo , Contenuto , Slug ed Estratto deselezionando le caselle accanto ad essi.

uncheck the default attributes

Dopo aver finito di gestire gli attributi dell'origine di ricerca dei post , premere Fine per salvare le modifiche.

press Done

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

Limita la ricerca a una specifica categoria di post

Per iniziare, premi il pulsante Modifica regole .

click Edit Rules

Quindi, fai clic su Aggiungi regola .

click Add Rule

Qui puoi aggiungere regole in base alle quali WordPress filtrerà i contenuti nei risultati di ricerca.

there are no rules by default

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

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

Per fare ciò, assicurati prima di scegliere l'opzione Mostra solo voci se: e la tassonomia delle categorie .

limit search to a specific category

Quindi inserisci il nome di una categoria a cui desideri limitare la ricerca nel campo più a destra. Nel nostro caso, sarà la Notizia .

specify a category

Dopo aver finito di personalizzare le regole del tuo motore di ricerca, fai clic su Fine per salvare le modifiche.

click Done to save your rules

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

Salva il tuo motore di ricerca

Per farlo, premi Salva motori nell'angolo in alto a destra della dashboard di SearchWP.

click Save Engines

Quindi fai clic su Ricostruisci indice per fare in modo che WordPress reindicizzi tutti i tuoi contenuti e applichi le nuove impostazioni del motore di ricerca.

click Rebuild Index

Questo è tutto. Hai completamente personalizzato la ricerca in base alle tue esigenze senza scrivere una sola riga di codice.

Testiamo la tua nuova ricerca per assicurarci che funzioni in base alle tue personalizzazioni.

Passaggio 3: verifica la tua nuova ricerca

Per iniziare, vai al tuo sito web ed esegui una ricerca di prova. Ad esempio, poiché abbiamo reso i tag dei post ricercabili, proviamo a trovare un post solo in base ai suoi tag.

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

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

press Find Results

Abbiamo trovato il post anche se non ci sono parole "aggiornamenti" nel titolo, nell'estratto o nel contenuto.

we found the post

Significa che il nostro motore di ricerca ora considera i tag dei post durante la ricerca di corrispondenze.

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

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

make another search

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

we found the right posts

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.

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 plug-in

Per personalizzare la tua ricerca senza un plug-in, 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 tema principale rimane intatto, consentendoti di passare rapidamente ad esso in caso di errori critici.

Inoltre, avere un tema figlio ti consente di aggiornare il tema principale senza perdere le modifiche. Per maggiori dettagli su come creare un tema figlio, dai un'occhiata a questo tutorial su come creare un tema figlio.

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

Per iniziare, vai su Aspetto »Editor dei file dei temi nella dashboard di WordPress.

go to Theme Files Editor

Quindi, trova il file functions.php sul pannello di destra e fai clic su di esso.

click the function file

Successivamente, segui le istruzioni di seguito a seconda delle personalizzazioni che desideri apportare per la ricerca sul tuo sito.

Abilita ricerca post per tag e categorie

Per rendere i tag e le categorie dei post ricercabili sul tuo sito senza un plug-in, aggiungi il seguente codice al file functions.php del tuo tema:

/*
 * ----------------------------------------------------------
 *
 * 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 .= "
    LEFT JOIN
    (
        {$wpdb->term_relationships}
        INNER JOIN
            {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb->terms} ON {$wpdb->terms}.term_id = {$wpdb->term_taxonomy}.term_id
    )
    ON {$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id ";
 
	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( "'publish'" );
 
	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status[]    = "'private'";
		$user_where .= " AND {$wpdb->posts}.post_author = {$user_id}";
	}
 
	$user_where .= " AND {$wpdb->posts}.post_status IN( " . implode( ',', $status ) . " ) ";
 
	$where .= " OR (
                    {$wpdb->term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb->terms}.name LIKE '%" . esc_sql( get_query_var( 's' ) ) . "%'
                    {$user_where}
                )";
 
	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 "{$wpdb->posts}.ID";
}
 
add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );

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

press Done

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

Abilita la ricerca per contenuto del commento e nomi degli autori

Per rendere i commenti e i nomi degli autori ricercabili sul tuo sito senza un plug-in, 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->comments . ' ON ' . $wpdb->posts . '..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(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->comments . ".comment_author LIKE $1) OR (" . $wpdb->comments . ".comment_content LIKE $1)",
		$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 );

Quando hai finito, fai clic sul pulsante Aggiorna file nella parte inferiore dell'editor per salvare le modifiche.

click Done

Ora i tuoi visitatori possono cercare in base al contenuto dei commenti e ai nomi degli autori.

Abilita ricerca per campi personalizzati post

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

/*
 * ----------------------------------------------------------
 *
 * 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->postmeta. ' ON '. $wpdb->posts . '..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(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->postmeta . ".meta_value LIKE $1)", $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 );

Una volta terminato, premi il pulsante Aggiorna file nella parte inferiore dell'editor per salvare le modifiche.

press Done

Ora i tuoi visitatori possono cercare i post in base a campi personalizzati.

In questo articolo hai imparato come creare una ricerca personalizzata sul tuo sito senza plug-in e perché utilizzare un plug-in per questo obiettivo è molto più conveniente.

Ci auguriamo che ti aiuti a prendere una decisione e a scegliere quale metodo preferisci utilizzare sul tuo sito.

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

Cerchi un modo per creare un tema personalizzato per il tuo sito? Dai un'occhiata al nostro tutorial passo-passo su come creare un tema WordPress personalizzato.

Vuoi personalizzare la tua pagina dei risultati di ricerca? Segui la nostra guida su come personalizzare la tua pagina dei risultati di ricerca di WordPress.