În acest tutorial vom explica cum puteți adăuga o funcție simplă pe pagina dvs. de căutare, care va afișa termenul de căutare și numărul de rezultate. Această funcționalitate a fost o cerere specială de la unul dintre utilizatorii noștri prin email. Dacă doriți să abordăm un subiect, nu ezitați să faceți o sugestie.

Deschideți fișierul search.php din tema dvs. și adăugați următorul cod:
<h2 class="pagetitle">Search Result for <?php /* Search Count */ $allsearch = new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' — '); echo $count . ' '; _e('articles'); wp_reset_query(); ?></h2>
Codul de mai sus va afișa ceva de genul acesta:
Rezultat căutare pentru twitter — 15 articole
Puteți evidenția, de asemenea, termenul de căutare adăugând clasa CSS .search-terms la foaia de stil a temei dvs. Iată un CSS simplu pentru a începe:
.search-terms {
background-color:yellow;
color:blue;
}
Acesta este doar unul dintre lucrurile grozave pe care le puteți face pentru pagina dvs. de căutare atunci când o personalizați. Puteți, de asemenea, evidenția termenii de căutare în rezultate și chiar adăuga o funcție de căutare după categorie la căutarea dvs. WordPress.
Sursă: Michael Martin

Aniruddh
Pot folosi acest cod în fișierul sidebar.php? Deoarece trebuie să afișez termenul de căutare și numărul de rezultate în bara laterală. Vă rog să mă ajutați.
Marco
thanks a lot for this snippet!
conform wp codex, funcția wp_specialchars este depreciată. spune că ar trebui să folosiți esc_html în schimb.
cu stimă,
marco
Marco
Data viitoare voi arunca o privire mai atentă la comentarii. CHADHAYTON a postat deja un link despre cum poți rezolva asta acum.
Henry
echo $wp_query->found_posts;
Adăugarea acestuia în partea de sus a paginii de căutare va afișa numărul de postări găsite pentru o anumită căutare.
echo get_search_query();
Acesta va afișa termenul de căutare (introdus în caseta de căutare de către vizitatorul site-ului dvs.).
timer_stop(1);
Acesta va afișa timpul necesar pentru a executa căutarea.
În total, ați putea afișa ceva de genul:
Căutarea dvs. pentru „boabe de cafea” a returnat „16” postări în „0,87” secunde.
jameslhf
Thank you Henry, that helped me!
Prasanna
Mulțumesc Henry. Acest lucru m-a ajutat mult.
chadhayton
Este greu de spus cât de vechi este acest post, dar WordPress 3.1 include o modalitate de a obține numărul total de rezultate ale căutării care nu necesită o interogare separată:
http://codex.wordpress.org/Creating_a_Search_Page#Display_Total_Results
Chris Murphy
Uau. Este mult mai simplu decât atât să numeri rezultatele căutării WordPress, aici:
global $wp_query; $count = sizeof( $wp_query->posts ); echo"<pre>"; //var_dump($wp_query);// The WP Query Object var_dump($wp_query->posts); // The WP Query Object's 'posts' property (note the plural) echo"</pre>";Dacă introduceți acest fragment în șablonul dvs. de căutare, acesta va afișa proprietățile variabilei ‘$wp_query’, în special proprietatea ‘posts’ a obiectului. Acesta este un array care stochează o colecție de postări returnate din interogarea de căutare, cu care puteți face o serie de lucruri odată ce îl accesați, inclusiv (*tobe*), *numărați* numărul de postări din acel array folosind fie funcția PHP ‘count()’, fie ‘sizeof()’.
Personal editorial
Codul dvs. este puțin trunchiat. Există o modalitate prin care ne puteți trimite fragmentul prin e-mail și putem încerca să scriem despre el. Evident, tot creditul va fi acordat dvs.
Admin
Ilya
Chris,
Acest lucru nu va funcționa. Ideea este să aflați numărul total de rezultate care corespund interogării - nu numărul preluat în prezent. Dacă există mai multe rezultate decât „se potrivesc” într-o pagină, codul dvs. va obține doar numărul de elemente dintr-o pagină.
pete
Rezultatele căutării sunt un lucru personal pentru un utilizator, așa că este bine dacă i se oferă multe informații.
basilakis
So the code is right or not?
I see Konstantin has some point about the query, but the comments “ate” the results!
Personal editorial
Acest cod este corect. Funcționează, singura problemă pe care o semnalează este că se poate face și altfel. Am folosit acest cod pe site-ul unui client și funcționează.
Admin
Konstantin
Idee bună. Execuție proastă.
De ce naiba ai vrea să traduci o etichetă span???
Și preferata mea:
_e('');Huh??De ce ai vrea să interoghezi aceeași căutare de două ori?
Nu are niciun sens.
Dar nu vreau să urăsc, așa ar trebui făcut (în umila mea opinie):
post_count); ?>
Tom
Nu acord suficientă atenție căutării mele pe pagină. Ceva de genul acesta este grozav, deoarece face pagina mai personalizată.