Cum se creează o căutare personalizată în WordPress fără un plugin
Publicat: 2022-07-25Vă î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 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 .
Apoi, apăsați butonul Download SearchWP și salvați pluginul pe computer.
După descărcare, copiați cheia de licență SearchWP în colțul din stânga jos.
Î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.
După aceea, introduceți cheia de licență în câmpul Licență și apăsați pe Activare .
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.
Puteți adăuga, elimina și personaliza motoarele de căutare în această filă.
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 .
Aici puteți gestiona unde ar trebui să caute WordPress potriviri. În mod implicit, caută printre Postări , Pagini și fișiere media .
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.
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 .
Î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.
Pentru a face căutarea unui anumit câmp personalizat, faceți clic pe câmpul Câmpuri personalizate și introduceți numele acestuia.
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.
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ă.
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.
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.
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.
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 .
Apoi, faceți clic pe Adăugați o regulă .
Aici puteți adăuga reguli conform cărora WordPress va filtra conținutul în rezultatele căutării.

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 .
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 .
După ce ați terminat de personalizat regulile motorului dvs. de căutare, faceți clic pe Terminat pentru a salva modificările.
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.
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.
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ă.
Am găsit postarea chiar dacă nu există niciun cuvânt „actualizări” în titlul, fragmentul sau conținutul ei.
Î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.
Puteți vedea că doar postările din categoria Știri sunt afișate printre rezultatele căutării pe care le-am obținut.
Î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.
Apoi, găsiți fișierul functions.php în panoul din dreapta și faceți clic pe el.
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.
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.
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.
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.