Afișarea numărului de rezultate ale căutării

3 aug. 2013, 18:52:36
Vizualizări: 53.4K
Voturi: 21

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.

1
Comentarii

allsearch = new WP_Query fără '&' pentru a evita notificarea de depreciere.

gmazzap gmazzap
3 aug. 2013 19:04:41
Toate răspunsurile la întrebare 2
3
43

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");
3 aug. 2013 18:59:42
Comentarii

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 Chouhan Harish Chouhan
3 aug. 2013 19:21:09

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.

Suyash Jain Suyash Jain
28 mai 2016 11:01:41

Cum se poate ca codul să fi funcționat anterior și acum nu mai funcționează? Am eliminat "&" de lângă semnul egal. Și acum funcționează din nou.

Jornes Jornes
11 apr. 2020 17:25:59
0

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'.

21 sept. 2021 08:42:13