Wyświetl liczbę wyników wyszukiwania

13

Do tej pory korzystałem z poniższego kodu, aby uzyskać liczbę wyników, gdy ktoś szuka, i wyświetlić tę liczbę.

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

Ale to nie wygląda na prawidłowy kod. Pokazuje poniższy błąd:

Przestarzałe: Przypisywanie zwracanej wartości nowego przez odwołanie jest nieaktualne

Czy ktoś może zasugerować właściwy sposób, w jaki otrzymuję liczenie wyszukiwania. Powyższy kod jest umieszczony w nagłówku mojego pliku index.php kompozycji w instrukcji warunkowej, aby wyświetlać inny nagłówek w zależności od typu strony, na której znajduje się użytkownik.

Harish Chouhan
źródło
allsearch = new WP_Querybez „&”, aby uniknąć wycofania powiadomienia.
gmazzap

Odpowiedzi:

32

Jeśli znajdujesz się w szablonie wyszukiwania, tzn. Zapytanie jest Twoim głównym zapytaniem. Powinieneś być w stanie uzyskać wyniki wyszukiwania z globalnego $wp_querybez uruchamiania dodatkowego zapytania.

global $wp_query;
echo $wp_query->found_posts.' results found.';

Edytuj 1

Jeśli musisz liczyć poza kontekstem wyszukiwania. Możesz połączyć obie techniki, aby uzyskać skuteczny wynik. Nie pobierze całego posta, ale możesz uzyskać liczbę wyszukiwań.

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

Twój błąd

O napotkanym błędzie leży tutaj

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

Usuń „&” obok znaku równości, aby pozbyć się błędu. Tak to będzie wyglądać

$allsearch = new WP_Query("s=$s&showposts=-1");
PAN
źródło
1
Wow dzięki. Próbowałem również tego i zadziałało „<? Php / * Search Count * / $ count = $ wp_query-> post_count; echo $ count. „”; wp_reset_query (); ?> '
Harish Chouhan
Ukryj swoje $ allsearch = nowe WP_Query ("s = $ s & showposts = 0"); echo $ allsearch -> found_posts. ' znalezione rezultaty.'; wyświetli tylko bieżącą liczbę stron, a nie sumę. Na przykład powinien on mieć tylko 10, jeśli jest również 20 postów.
Suyash Jain