แสดงจำนวนผลลัพธ์การค้นหา


13

จนถึงตอนนี้ฉันใช้โค้ดด้านล่างเพื่อรับจำนวนผลลัพธ์เมื่อมีคนค้นหาและแสดงจำนวนนั้น

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

แต่ดูเหมือนว่าจะไม่เป็นรหัสที่ถูกต้อง มันแสดงให้เห็นข้อผิดพลาดด้านล่าง:

เลิกใช้แล้ว: การกำหนดค่าส่งคืนของใหม่โดยการอ้างอิงนั้นเลิกใช้แล้ว

ใครช่วยกรุณาแนะนำวิธีการที่เหมาะสมที่ฉันได้รับการค้นหา โค้ดด้านบนถูกวางไว้ในส่วนหัวของไฟล์ index.php ของธีมภายในคำสั่งแบบมีเงื่อนไขเพื่อแสดงหัวเรื่องที่แตกต่างกันตามประเภทของหน้าเว็บที่ผู้ใช้เปิดอยู่


allsearch = new WP_Queryไม่มี '&' เพื่อหลีกเลี่ยงการบอกเลิก
gmazzap

คำตอบ:


32

หากคุณอยู่ในเทมเพลตการค้นหาเช่นข้อความค้นหาเป็นข้อความค้นหาหลักของคุณ จากนั้นคุณควรจะสามารถรับผลการค้นหาจากทั่วโลก$wp_queryโดยไม่ต้องเรียกใช้แบบสอบถามเพิ่มเติม

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

แก้ไข 1

หากคุณต้องนับจากบริบทการค้นหา คุณสามารถรวมเทคนิคทั้งสองเพื่อให้ได้ผลลัพธ์ที่มีประสิทธิภาพ มันจะไม่ดึงข้อความทั้งหมด แต่คุณสามารถรับจำนวนการค้นหาได้

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

ข้อผิดพลาดของคุณ

เกี่ยวกับข้อผิดพลาดที่คุณได้รับมันอยู่ที่นี่

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

ลบเครื่องหมาย "&" ข้างเครื่องหมายเท่ากับเพื่อกำจัดข้อผิดพลาด ดังนั้นมันจะเป็นแบบนี้

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

1
ว้าวขอบคุณ. ฉันลองและใช้งานได้ '<? php / * จำนวนการค้นหา * / $ count = $ wp_query-> post_count; echo $ count ''; wp_reset_query (); ?> '
Harish Chouhan

เก็บเกี่ยว $ allsearch = WP_Query ใหม่ของคุณ ("s = $ s & showposts = 0"); echo $ allsearch -> found_posts ' พบผลลัพธ์ '; จะแสดงเฉพาะจำนวนหน้าปัจจุบันที่ไม่ได้แสดงทั้งหมด ตัวอย่างเช่นจะมีเพียง 10 ถ้ามี 20 โพสต์ด้วย
Suyash Jain
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.