Visualizzare il Numero di Risultati della Ricerca

3 ago 2013, 18:52:36
Visualizzazioni: 53.4K
Voti: 21

Fino ad ora ho utilizzato il seguente codice per ottenere il numero di risultati quando qualcuno effettua una ricerca e per visualizzare quel conteggio.

<?php 
/* Conteggio Ricerca */ 
$allsearch = new WP_Query("s=$s&showposts=-1"); 
$count = $allsearch->post_count; 
echo $count . ' '; 
wp_reset_query(); 
?>

Ma questo non sembra essere un codice valido. Mostra il seguente errore:

Deprecated: Assigning the return value of new by reference is deprecated

Qualcuno può suggerire il modo corretto per ottenere il conteggio della ricerca? Il codice sopra riportato è posizionato nell'intestazione del file index.php del tema all'interno di un'istruzione condizionale per visualizzare diverse intestazioni in base al tipo di pagina su cui si trova l'utente.

1
Commenti

allsearch = new WP_Query senza '&' per evitare l'avviso di deprecazione.

gmazzap gmazzap
3 ago 2013 19:04:41
Tutte le risposte alla domanda 2
3
43

Se ti trovi all'interno del template di ricerca, cioè la query di ricerca è la tua query principale. Dovresti quindi essere in grado di ottenere i risultati di ricerca dalla variabile globale $wp_query senza eseguire una query aggiuntiva.

global $wp_query;
echo $wp_query->found_posts.' risultati trovati.';

Modifica 1

Se devi ottenere il conteggio al di fuori del contesto di ricerca. Puoi combinare entrambe le tecniche per ottenere un risultato efficiente. Non recupererà tutti i post ma potrai ottenere il conteggio della ricerca.

$allsearch = new WP_Query("s=$s&showposts=0"); 
echo $allsearch ->found_posts.' risultati trovati.';

Il tuo Errore

L'errore che stai ricevendo si trova qui

$allsearch =& new WP_Query("s=$s&showposts=-1");

Rimuovi il "&" accanto al segno di uguale per eliminare l'errore. Quindi apparirà così

$allsearch = new WP_Query("s=$s&showposts=-1");
3 ago 2013 18:59:42
Commenti

Wow grazie. Ho anche provato questo e ha funzionato '<?php / Conteggio Ricerca / $count = $wp_query->post_count; echo $count . ' '; wp_reset_query(); ?>'

Harish Chouhan Harish Chouhan
3 ago 2013 19:21:09

Harish il tuo $allsearch = new WP_Query("s=$s&showposts=0"); echo $allsearch ->found_posts.' risultati trovati.'; mostrerà solo il conteggio della pagina corrente non il totale. Ad esempio mostrerà solo 10 anche se ci sono 20 post.

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

Come mai il codice funzionava prima e ora non funziona? Ho rimosso il "&" accanto all'uguale. E ora funziona di nuovo.

Jornes Jornes
11 apr 2020 17:25:59
0

Potrebbe essere utile condividere anche questo, in modo che il primo titolo informi l'utente che sono stati trovati risultati di ricerca e il secondo indichi quanti sono stati trovati. Se i risultati sono meno di 2, dovrebbe mostrare "1 risultato trovato", altrimenti "x risultati trovati".

    <h2 class="blog_archive_heading">Risultati di ricerca per '<?php the_search_query(); ?>'</h2>
<h3 class="blog_archive_heading"><?php
  global $wp_query;
  if($wp_query->found_posts < 2) {
    $result = "risultato";
  } else {
    $result = "risultati";
  }
    echo $wp_query->found_posts . " " . $result . " trovati.";
    ?></h3>

Questo snippet di codice appare nel mio file search.php, per intenderci.

section-searchresults.php mostrerà semplicemente gli articoli del blog trovati in relazione alla tua ricerca. Se non ne viene trovato nessuno, mostrerà "Nessun risultato trovato".

21 set 2021 08:42:13