Cum se creează o căutare personalizată în WordPress fără un plugin

Publicat: 2022-07-25

Vă întrebați cum să creați o căutare personalizată în WordPress fără un plugin?

Personalizând căutarea pe site-ul dvs., puteți crește numărul de afișări de pagină, vă puteți crește vânzările și vă puteți ajuta vizitatorii să găsească mai repede ceea ce au venit.

În acest articol, vom vorbi despre cum puteți personaliza căutarea pe site-ul dvs. fără a instala un plugin și de ce ar trebui să luați în considerare utilizarea unui plugin pentru a face asta.

Iată un cuprins pentru a vă ajuta să navigați rapid prin acest articol:

  • De ce este importantă căutarea personalizată pentru site-ul dvs. WordPress?
  • Dezavantajele creării căutării personalizate fără un plugin
  • Cea mai ușoară metodă de personalizare a căutării WordPress pe site-ul dvs
  • Creați căutare personalizată în WordPress fără un plugin

Sa incepem!

De ce este importantă căutarea personalizată pentru site-ul dvs. WordPress?

Pentru a începe, să vorbim despre modul în care o căutare personalizată pe site-ul dvs. vă poate ajuta să vă dezvoltați afacerea.

Personalizarea căutării pe site-ul dvs. vă permite să:

  • Oferiți rezultate de căutare mai relevante . Limitați-vă căutarea la anumite categorii pentru a restrânge rezultatele căutării și pentru a ajuta vizitatorii să găsească mai rapid ceea ce caută.
  • Obțineți mai multe afișări de pagină și vânzări . Îmbunătățiți capacitatea de descoperire a conținutului și creșteți-vă veniturile prin promovarea anumitor postări sau produse în rezultatele căutării.
  • Construiți un public loial . Vizitatorii care au avut o experiență pozitivă de căutare pe site-ul dvs. au șanse mai mari să revină pentru a explora mai mult conținutul dvs.
  • Generați mai mult trafic de la motoarele de căutare . Ajutând vizitatorii să găsească mai rapid conținutul potrivit, îi faceți să rămână mai mult timp pe site-ul dvs., care este unul dintre principalii factori de clasare în Google.

După ce ne-am dat seama ce beneficii poate aduce căutarea personalizată afacerii dvs., să vorbim despre ce dezavantaje vă puteți aștepta dacă faceți asta fără un plugin.

Dezavantajele creării căutării personalizate fără un plugin

Ar trebui să luați în considerare câteva dezavantaje majore dacă doriți să creați o căutare personalizată pe site-ul dvs. fără un plugin.

1. Necesită abilități de codificare și cunoștințe profunde despre WordPress

Principalul dezavantaj al personalizării manuale a căutării pe site este că necesită o experiență vastă de codare și cunoștințe profunde despre WordPress.

Chestia este că nu există instrumente implicite de configurare a căutării în WordPress.

Din acest motiv, singura modalitate de a vă personaliza căutarea este să modificați fișierele de bază WordPress și codul temei.

Este incomod, consumator de timp și nepotrivit pentru persoanele care nu se pricep la tehnologie.

Mai mult, dacă faci ceva greșit, poate duce la blocarea site-ului tău, așa că ar trebui să fii foarte atent când personalizi fișierele cu tema.

2. Veți avea mai puține caracteristici

În plus, chiar dacă aveți abilități extinse de codare, numărul de funcții de căutare personalizate pe care le puteți adăuga fără un plugin este limitat.

De exemplu, nu puteți adăuga mai multe motoare de căutare cu un set unic de reguli, nu puteți exclude anumite pagini sau categorii din căutare, nu puteți gestiona ordinea rezultatelor căutării și multe altele.

Deci, dacă este esențial pentru dvs. să obțineți control complet asupra modului în care funcționează căutarea pe site-ul dvs., ar trebui să luați în considerare utilizarea unui plugin de căutare puternic WordPress.

3. Vă puteți pierde modificările

În cele din urmă, deoarece personalizarea căutării fără un plugin necesită modificări ale fișierelor site-ului dvs., veți pierde toate modificările pe care le-ați făcut atunci când actualizați tema sau versiunea WordPress.

Cea mai bună modalitate de a evita astfel de situații este să folosești un plugin de căutare WordPress, deoarece îți păstrează setările, orice ai face cu site-ul tău.

Cu aceasta, să aruncăm o privire la modul în care puteți personaliza căutarea pe site-ul dvs. în câteva clicuri, fără a fi nevoie de codificare și indiferent de abilitățile dumneavoastră tehnice.

Cea mai ușoară metodă de personalizare a căutării WordPress pe site-ul dvs

Cel mai simplu mod de a personaliza o căutare pe site-ul tău WordPress este să folosești un plugin precum SearchWP.

SearchWP logo

SearchWP este cel mai bine cotat plugin de căutare WordPress în care au încredere peste 30.000 de proprietari de site-uri web.

Interfața prietenoasă pentru începători și funcțiile puternice vă permit să vă personalizați complet căutarea, chiar dacă lansați primul site web.

De exemplu, cu SearchWP, puteți gestiona unde ar trebui să caute WordPress potriviri, să limitați căutarea la un anumit tip de conținut, să activați căutarea după etichete și câmpuri personalizate și multe altele.

Cel mai bun lucru este că poți face majoritatea acestor lucruri în doar câteva clicuri.

De asemenea, puteți utiliza SearchWP pentru a:

  • Afișează rezultatele căutării în modul live . Activați afișarea live a rezultatelor căutării pe site-ul dvs., astfel încât vizitatorii să poată naviga instantaneu la conținutul pe care îl doresc.
  • Urmăriți căutările vizitatorilor dvs. Colectați date despre ceea ce caută vizitatorii pe site-ul dvs., rezultatele pe care se poate face clic cel mai mult și alte date valoroase.
  • Evidențiați termenii de căutare în rezultatele căutării . Ajutați-vă vizitatorii să descopere dacă au găsit conținutul potrivit mai repede evidențiind cuvintele cheie în rezultatele căutării.
  • Excludeți anumite pagini din căutare . Eliminați dezordinea din rezultatele căutării de pe site-ul dvs. excluzând paginile redundante și conținutul învechit.

După ce ați aflat de ce SearchWP este cel mai bun plugin de căutare WordPress, să vedem cum îl puteți utiliza pentru a personaliza căutarea pe site-ul dvs. pentru nevoile dvs.

Pasul 1: Instalați și activați SearchWP

Primul pas este să mergeți și să luați copia dvs. de SearchWP aici.

După ce ați terminat, accesați tabloul de bord al contului SearchWP și faceți clic pe Descărcări .

go to the Downloads tab

Apoi, apăsați butonul Download SearchWP și salvați pluginul pe computer.

click Download SearchWP

După descărcare, copiați cheia de licență SearchWP în colțul din stânga jos.

copy your license key

În continuare, va trebui să instalați SearchWP pe site-ul dvs. Dacă aveți nevoie de ajutor, puteți urma ghidul nostru detaliat despre instalarea unui plugin WordPress.

Odată ce ați activat și rulat SearchWP pe site-ul dvs., următorul pas este să vă activați copia pluginului.

Pentru a face acest lucru, accesați tabloul de bord WordPress și faceți clic pe Activare licență sub butonul SearchWP din panoul de sus.

click Activate License

După aceea, introduceți cheia de licență în câmpul Licență și apăsați pe Activare .

press Activate

După ce vă activați copia SearchWP, sunteți gata să începeți să vă personalizați căutarea.

Pasul 2: Începeți să vă personalizați căutarea

Pentru a începe, faceți clic pe Motoare în setările dvs. de căutare WP.

go to Engines

Puteți adăuga, elimina și personaliza motoarele de căutare în această filă.

your search engines

SearchWP creează automat motorul de căutare implicit după instalare.

Este legat de fiecare formular de căutare existent, așa că, personalizându-l, puteți controla modul în care funcționează căutarea pe site-ul dvs.

De exemplu, puteți gestiona lista surselor de căutare, puteți face WordPress să ia în considerare noile atribute de conținut, puteți limita căutarea la anumite categorii și multe altele.

Cu SearchWP, puteți adăuga un număr nelimitat de motoare de căutare și le puteți conecta la formulare de căutare individuale de pe site-ul dvs.

Datorită acestui fapt, puteți crea rapid formulare de căutare personalizate pentru diverse nevoi de afaceri și le puteți plasa oriunde doriți pe site-ul dvs.

Deoarece în acest tutorial dorim să personalizăm modul în care funcționează căutarea pe întregul site, vom edita motorul de căutare implicit .

Mai întâi, să specificăm unde va căuta WordPress conținut prin configurarea listei sale de surse de căutare.

Gestionați-vă sursele de căutare

Pentru a începe, apăsați butonul Surse și setări din secțiunea Motor de căutare implicit .

click Sources and Settings

Aici puteți gestiona unde ar trebui să caute WordPress potriviri. În mod implicit, caută printre Postări , Pagini și fișiere media .

uncheck search sources

Pentru a elimina o sursă de căutare, debifați o casetă de lângă ea. De exemplu, să limităm căutarea pe site-ul nostru doar la postări.

Pentru a face asta, vom debifa toate celelalte surse, cu excepția Postărilor , apoi vom face clic pe Efectuat pentru a salva modificările.

left only Posts search source active

Odată ce am configurat lista noastră de surse de căutare, să ne îmbunătățim și căutarea, făcând WordPress să ia în considerare atributele postărilor și taxonomiile.

Configurați-vă atributele de căutare

Pentru a începe, faceți clic pe butonul Adăugați/Eliminați atribute din secțiunea Sursă de căutare postări .

click Add Remove attributes

În fereastra care apare, puteți specifica atributele și taxonomiile pe care doriți să le ia în considerare WordPress atunci când efectuați o căutare.

add new attributes

Pentru a face căutarea unui anumit câmp personalizat, faceți clic pe câmpul Câmpuri personalizate și introduceți numele acestuia.

click on the Custom Fields field

Există, de asemenea, comanda rapidă Any Meta Key , prin adăugarea căreia puteți face căutate în toate câmpurile de căutare existente simultan.

click Add Any Meta key

Când ați terminat de adăugat câmpuri personalizate, să facem și taxonomii de index pentru WordPress.

În WordPress, taxonomiile sunt o metodă de clasificare a conținutului și a datelor. De exemplu, ar putea fi categorii de postări, etichete, format sau altceva.

Pentru a face căutarea unei noi taxonomii, faceți clic pe câmpul Taxonomii și selectați taxonomia dorită.

click on the Taxonomies field

De exemplu, să facem WordPress să ia în considerare etichetele de post atunci când efectuează o căutare. Pentru a face acest lucru, alegeți opțiunea Etichete din meniul derulant.

choose the Tags taxonomy

De asemenea, puteți face ca WordPress să ignore atributele implicite ale postării, cum ar fi Titlu , Conținut , Slug și Extras , debifând casetele de lângă acestea.

uncheck the default attributes

După ce ați terminat de gestionat atributele sursei de căutare a postărilor , apăsați pe Efectuat pentru a salva modificările.

press Done

Acum, să vedem cum vă puteți restrânge căutarea pentru a oferi vizitatorilor rezultate mai relevante.

Limitați căutarea la o anumită categorie de postare

Pentru a începe, apăsați butonul Editați regulile .

click Edit Rules

Apoi, faceți clic pe Adăugați o regulă .

click Add Rule

Aici puteți adăuga reguli conform cărora WordPress va filtra conținutul în rezultatele căutării.

there are no rules by default

De exemplu, puteți adăuga o regulă pentru a exclude anumite categorii din căutarea dvs. sau, invers, puteți limita căutarea la acestea.

Să presupunem că vrem să limităm căutarea pe site-ul nostru de testare la categoria Știri .

Pentru a face acest lucru, asigurați-vă mai întâi că alegeți opțiunea Afișați doar intrările dacă: și taxonomia Categorii .

limit search to a specific category

Apoi introduceți numele unei categorii la care doriți să limitați căutarea în câmpul din dreapta. În cazul nostru, va fi Știrile .

specify a category

După ce ați terminat de personalizat regulile motorului dvs. de căutare, faceți clic pe Terminat pentru a salva modificările.

click Done to save your rules

Când sunteți mulțumit de modul în care v-ați personalizat căutarea, sunteți gata să treceți la pasul final și să salvați motorul de căutare.

Salvați-vă motorul de căutare

Pentru a face acest lucru, apăsați pe Salvare motoare din colțul din dreapta sus al tabloului de bord SearchWP.

click Save Engines

Apoi faceți clic pe Rebuild Index pentru a face WordPress să reindexeze întregul conținut și a aplica noile setări ale motorului de căutare.

click Rebuild Index

Asta e. Ați personalizat complet căutarea pentru nevoile dvs. fără a scrie o singură linie de cod.

Să testăm noua ta căutare pentru a ne asigura că funcționează în conformitate cu personalizările tale.

Pasul 3: Testează-ți noua căutare

Pentru a începe, accesați site-ul dvs. web și efectuați o căutare de test. De exemplu, deoarece am făcut ca etichetele de postare să poată fi căutate, să încercăm să găsim o postare numai după etichetele sale.

Pe site-ul nostru de testare, avem o postare numită „Noi funcții WordPress”, care are eticheta „Actualizări”.

Să căutăm după această etichetă și să vedem dacă putem găsi postarea noastră.

press Find Results

Am găsit postarea chiar dacă nu există niciun cuvânt „actualizări” în titlul, fragmentul sau conținutul ei.

we found the post

Înseamnă că motorul nostru de căutare acum ia în considerare etichetele de post atunci când caută potriviri.

De asemenea, să ne asigurăm că căutarea pe site-ul nostru este acum limitată la categoria „Știri”.

Pentru a face asta, vom căuta „WordPress”, deoarece avem multe postări legate de WordPress în alte categorii.

make another search

Puteți vedea că doar postările din categoria Știri sunt afișate printre rezultatele căutării pe care le-am obținut.

we found the right posts

Înseamnă că regula pe care am adăugat-o motorului nostru de căutare, care spune că WordPress ar trebui să caute doar printre știri, funcționează așa cum ar trebui.

Deci, tocmai ați învățat cel mai simplu mod de a vă personaliza căutarea. Acum să vedem cum o poți face fără a folosi un plugin.

Creați căutare personalizată în WordPress fără un plugin

Pentru a vă personaliza căutarea fără un plugin, va trebui să faceți modificări temei dvs.

Cel mai sigur mod de a face acest lucru este să creați o temă secundară a temei curente pe care o utilizați pe site-ul dvs.

În acest fel, atunci când modificați o temă copil, tema părinte rămâne neatinsă, permițându-vă să treceți rapid la ea în cazul unor erori critice.

În plus, a avea o temă copil vă permite să vă actualizați tema părinte fără a pierde modificările. Pentru mai multe detalii despre cum să creați o temă copil, consultați acest tutorial despre cum să creați o temă copil.

După ce creați și activați o temă copil, sunteți gata să începeți să vă personalizați căutarea.

Pentru a începe, navigați la Aspect » Editor de fișiere tematice din tabloul de bord WordPress.

go to Theme Files Editor

Apoi, găsiți fișierul functions.php în panoul din dreapta și faceți clic pe el.

click the function file

După aceea, urmați instrucțiunile de mai jos, în funcție de ce personalizări doriți să faceți pentru a căuta pe site-ul dvs.

Activați căutarea postărilor după etichete și categorii

Pentru a face ca etichetele și categoriile de postare să poată fi căutate pe site-ul dvs. fără un plugin, adăugați următorul cod în fișierul functions.php al temei:

/*
 * ----------------------------------------------------------
 *
 * 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 );

Când ați terminat, apăsați butonul Actualizare fișier pentru a salva modificările.

press Done

Acum, vizitatorii site-ului dvs. pot căuta postări după etichete și categorii.

Activați căutarea după conținutul comentariilor și numele autorilor

Pentru a putea căuta comentarii și numele autorilor pe site-ul dvs. fără un plugin, adăugați următorul cod în fișierul functions.php al temei:

/*
 * ----------------------------------------------------------
 *
 * 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 );

Când ați terminat, faceți clic pe butonul Actualizare fișier din partea de jos a editorului pentru a salva modificările.

click Done

Acum vizitatorii tăi pot căuta după conținutul comentariilor și numele autorilor.

Activați căutarea după câmpuri personalizate post

Pentru a face căutarea câmpurilor personalizate pe site-ul dvs. fără un plugin, adăugați următorul cod în fișierul functions.php al temei:

/*
 * ----------------------------------------------------------
 *
 * 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 );

După ce ați terminat, apăsați butonul Actualizare fișier din partea de jos a editorului pentru a salva modificările.

press Done

Acum vizitatorii dvs. pot căuta postări după câmpuri personalizate.

În acest articol, ați învățat cum să creați o căutare personalizată pe site-ul dvs. fără un plugin și de ce utilizarea unui plugin pentru acest scop este mult mai convenabilă.

Sperăm că vă va ajuta să luați o decizie și să alegeți ce metodă preferați să utilizați pe site-ul dvs.

Sunteți gata să personalizați căutarea pe site-ul dvs. în câteva clicuri? Puteți începe să utilizați SearchWP aici.

Căutați o modalitate de a crea o temă personalizată pentru site-ul dvs.? Consultați tutorialul nostru pas cu pas despre cum să creați o temă WordPress personalizată.

Doriți să vă personalizați pagina cu rezultatele căutării? Urmați ghidul nostru despre cum să personalizați pagina cu rezultatele căutării WordPress.