Afișarea numărului de rezultate ale căutării
Până acum am folosit codul de mai jos pentru a obține numărul de rezultate atunci când cineva caută și pentru a afișa acel număr.
<?php /* Număr căutări */ $allsearch =& new WP_Query("s=$s&showposts=-1"); $count = $allsearch->post_count; echo $count . ' '; wp_reset_query(); ?>
Dar acest cod nu pare să fie valid. Afișează următoarea eroare:
Deprecated: Assigning the return value of new by reference is deprecated
Poate cineva să sugereze modalitatea corectă prin care pot obține numărul de rezultate ale căutării. Codul de mai sus este plasat în antetul fișierului index.php al temei, în cadrul unei instrucțiuni condiționale pentru a afișa anteturi diferite în funcție de tipul paginii pe care se află utilizatorul.

Dacă vă aflați în cadrul șablonului de căutare, adică interogarea de căutare este interogarea principală, atunci ar trebui să puteți obține rezultatele căutării din variabila globală $wp_query
fără a rula o interogare suplimentară.
global $wp_query;
echo $wp_query->found_posts.' rezultate găsite.';
Editare 1
Dacă trebuie să obțineți numărul de rezultate în afara contextului de căutare, puteți combina ambele tehnici pentru a obține un rezultat eficient. Nu va prelua toate articolele, dar puteți obține numărul de rezultate.
$allsearch = new WP_Query("s=$s&showposts=0");
echo $allsearch ->found_posts.' rezultate găsite.';
Eroarea ta
Eroarea pe care o întâmpinați se află aici
$allsearch =& new WP_Query("s=$s&showposts=-1");
Eliminați simbolul "&" de lângă semnul egal pentru a scăpa de eroare. Deci va arăta astfel:
$allsearch = new WP_Query("s=$s&showposts=-1");

Uau, mulțumesc. Am încercat și eu acest cod și a funcționat: '<?php / Număr de rezultate căutare / $count = $wp_query->post_count; echo $count . ' '; wp_reset_query(); ?>'

Harish, codul tău $allsearch = new WP_Query("s=$s&showposts=0"); echo $allsearch ->found_posts.' rezultate găsite.'; va afișa doar numărul de rezultate din pagina curentă, nu totalul. De exemplu, va arăta doar 10 chiar dacă sunt 20 de articole.

Poate fi util să împărtășesc și acest lucru, astfel încât primul titlu să anunțe utilizatorul că au fost găsite rezultatele căutării, iar al doilea să indice câte rezultate au fost găsite. Dacă au fost mai puțin de 2 rezultate, ar trebui să afișeze '1 rezultat găsit', altfel 'x rezultate găsite'.
<h2 class="blog_archive_heading">Rezultatele căutării pentru '<?php the_search_query(); ?>'</h2>
<h3 class="blog_archive_heading"><?php
global $wp_query;
if($wp_query->found_posts < 2) {
$result = "rezultat";
} else {
$result = "rezultate";
}
echo $wp_query->found_posts . " " . $result . " găsite.";
?></h3>
Acest fragment de cod apare în fișierul search.php al meu, ca să zic așa.
section-searchresults.php va afișa pur și simplu articolele de blog care au fost găsite în legătură cu căutarea dvs., iar dacă nu au fost găsite rezultate, va afișa 'Nu au fost găsite rezultate'.
