ทำแบบสอบถามใน WordPress ด้วย WP_Query
เผยแพร่แล้ว: 2023-02-12ฐานข้อมูลที่ฟีดเว็บไซต์ WordPress ของคุณเต็มไปด้วยข้อมูลที่มีค่า นี่คือสิ่งที่ทำให้สามารถกรองโพสต์และเพจของคุณตามตัวแปรต่างๆ ได้ หากสิ่งที่คุณต้องการแสดงไม่ได้เป็นส่วนหนึ่งของธีมของคุณ อย่างไรก็ตาม มีวิธีอื่นในการใช้ข้อมูลนั้น
นี่คือที่มาของ WP_Query นี่คือคลาส PHP ที่ใช้พารามิเตอร์ที่หลากหลาย ดังนั้นจึงทำให้คุณสามารถดึงข้อมูลจากฐานข้อมูล WordPress เพื่อใช้งานหรือแสดงบนเว็บไซต์ของคุณได้
ในบทความนี้ เราจะให้ความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับคลาส WP_Query และวิธีการใช้งาน นอกจากนี้ เราจะแนะนำขั้นตอนสำคัญบางประการให้คุณปฏิบัติตามเมื่อใช้งาน ถ้าพร้อมแล้วไปดำดิ่งกันเลย!
WP_Query คืออะไร
ดังที่เราได้กล่าวไปแล้ว WP_Query เป็นคลาส PHP ที่ใช้โดยฐานข้อมูล WordPress คลาสนี้สามารถทำได้หลายอย่าง แต่โดยหลักแล้วจะใช้เพื่อดึงโพสต์จากฐานข้อมูล
ตามชื่อที่ระบุ มันสร้างแบบสอบถามตามเกณฑ์ที่คุณตั้งไว้ เนื่องจากมีพารามิเตอร์มากมายที่คุณสามารถใช้กับ WP_Query ใน WordPress คุณจึงสามารถดึงและแสดงโพสต์ได้หลายวิธี เราจะสำรวจตัวเลือกเหล่านั้นโดยละเอียดยิ่งขึ้นในภายหลังในโพสต์นี้
วิธีใช้ WP_Query
แม้ว่าคุณจะเพิ่งเรียนรู้แง่มุมต่างๆ ของโค้ดเบส WordPress แต่ WP_Query ก็เป็นคลาสที่ดีในการเริ่มต้น ตอนนี้มาแบ่งสี่วิธีที่คุณสามารถใช้บนเว็บไซต์ของคุณ
1. เริ่มต้นด้วยลูปแบบกำหนดเอง
หนึ่งในวิธีที่ดีที่สุดในการทำความรู้จักกับการโทร WP_Query คือผ่าน WordPress Loop หากคุณไม่คุ้นเคยกับสิ่งที่ Loop เป็นแนวคิดสำคัญที่ควรอ่าน
การวนซ้ำคือสิ่งที่เรียกไปยังฐานข้อมูลเพื่อขอเนื้อหาโพสต์และแสดงข้อมูลที่ส่งคืน นอกจากนี้ยังทำงานตามพารามิเตอร์ที่ตั้งไว้ เช่น จำนวนโพสต์ที่คุณต้องการให้ไซต์ของคุณแสดงในหน้าเดียว (บางอย่างที่คุณสามารถกำหนดค่าได้ใน การตั้งค่า > เมนูการอ่าน )
พื้นฐานของ Loop มีลักษณะดังนี้:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
คำสั่งง่ายๆ นี้โดยหลักแล้วจะบอกว่าหากมีการโพสต์ก็ควรจะแสดง แน่นอน คุณสามารถเพิ่มแท็กเทมเพลตได้หลากหลายให้กับรากฐานนี้ เพื่อสร้างการแสดงผลที่คุณต้องการ
คุณยังสามารถแทรก WP_Query ลงในลูปได้อีกด้วย สิ่งนี้ทำให้คุณสามารถวางพารามิเตอร์ว่าจะส่งคืนโพสต์ใด มาแยกย่อยกันว่าจะมีลักษณะอย่างไร:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
คุณจะเห็นคำสั่ง if/ while เหมือนกันจากลูปพื้นฐาน แต่มีสตริง WP_Query เพิ่มเติม ไม่ว่าจะตั้งค่าพารามิเตอร์ใดที่นี่จะเป็นตัวกำหนดว่าโพสต์ใดที่จะแสดง
ตัวอย่างเช่น หากคุณต้องการแยกผู้เขียนบางคนออกจากรายการโพสต์ คุณสามารถทำได้ในลูปด้วย WP_Query:
$query = new WP_Query( array( 'author' => -12 ) );
เมื่อวางสิ่งนี้ในลูป โพสต์ที่แสดงของคุณจะไม่รวมผู้ใช้ที่มีหมายเลขผู้เขียนเป็น "12" อีกต่อไป
จำนวนพารามิเตอร์ที่คุณสามารถใช้กับวิธีนี้นั้นไม่มีที่สิ้นสุด คุณสามารถรวมข้อมูลหมวดหมู่และอนุกรมวิธานขั้นสูงได้ เพียงเพื่อยกตัวอย่างสองตัวอย่าง
2. อาร์กิวเมนต์: แกนหลักของข้อความค้นหาที่กำหนดเองใน WordPress
ในตัวอย่างก่อนหน้านี้ คุณอาจสังเกตเห็นว่า “($args)” เป็นส่วนหนึ่งของสตริง นี่เป็นส่วนสำคัญของแบบสอบถามที่อ้างถึง 'ข้อโต้แย้ง' ที่รวมอยู่ เป็นการบอกฐานข้อมูลอย่างชัดเจนว่าจะรวมสิ่งใดในข้อมูลที่ส่งคืน
โดยพื้นฐานแล้ว สามารถตั้งค่าอาร์กิวเมนต์เหล่านี้เพื่อกำหนดผลลัพธ์ที่คุณต้องการแสดง อาร์กิวเมนต์สามารถใช้เพื่อเปลี่ยนค่าของตัวแปรได้เช่นกัน ตัวอย่างเช่น หากคุณต้องการเปลี่ยนวิธีแสดงรายการหมวดหมู่ของคุณบนเพจ คุณสามารถใช้อาร์กิวเมนต์ได้
อาร์กิวเมนต์ของคุณจะกำหนดอาร์เรย์ของตัวแปรและค่าต่างๆ ดังนั้น ถ้าคุณต้องการ คุณสามารถใช้อาร์กิวเมนต์เพื่อกำหนดอาร์เรย์และบอกให้ฐานข้อมูลของคุณนำเสนอหมวดหมู่ตามลำดับจากมากไปน้อย นอกจากนี้ คุณสามารถใช้วิธีเดียวกันนี้เพื่อยกเว้นหมวดหมู่ใดๆ ที่ไม่มีโพสต์
3. พารามิเตอร์ใน WP_Query: หมวดหมู่ แท็ก และอื่นๆ
จนถึงจุดนี้ เราได้กล่าวถึงพารามิเตอร์ในการผ่านบอลเท่านั้น ณ จุดนี้ เรามาดูกันดีกว่าว่าพวกมันทำอะไรได้บ้าง หน้าที่หลักของพวกเขาคือการช่วยให้คุณสามารถดึงคอลเลกชันโพสต์ที่ออกแบบเอง
ตัวอย่างหนึ่งของพารามิเตอร์ที่สามารถใช้ในส่วนหัวของไซต์ของคุณคือพารามิเตอร์หมวดหมู่ คุณสามารถใช้สิ่งนี้เพื่อระบุหมวดหมู่เฉพาะสำหรับการแสดง สิ่งนี้ทำได้โดยการระบุหมายเลขหมวดหมู่หรือทากที่เกี่ยวข้อง
นอกจากนี้ คุณสามารถทำสิ่งเดียวกันกับพารามิเตอร์แท็กได้ แน่นอน พารามิเตอร์ Category และ Tag เป็นเพียงส่วนเล็กๆ ของภูเขาน้ำแข็งเมื่อพูดถึงการใช้ WP_Query
4. แก้ไขวัตถุด้วยวิธีการและคุณสมบัติ
แม้ว่าจะไม่แนะนำให้แก้ไขคุณสมบัติของคลาสโดยตรง เช่น WP_Query แต่คุณสามารถโต้ตอบกับพวกเขาได้โดยใช้เมธอด โดยพื้นฐานแล้ว เมธอดจะเหมือนกับฟังก์ชัน ในขณะที่คุณสมบัติจะเทียบเท่ากับตัวแปร
WP_Query มีคุณสมบัติมากมาย ช่วงเหล่านี้มีตั้งแต่คุณสมบัติ "$posts" แบบธรรมดาไปจนถึงคุณสมบัติที่ซับซ้อนมากขึ้น ไม่ว่าจะใช้วิธีใดในการโต้ตอบกับพวกเขา ข้อมูลจะถูกส่งคืนตามพารามิเตอร์ที่คุณเลือกใส่
WP_Query กับ query_posts() ใน WordPress
เป็นที่น่าสังเกตว่ามีวิธีอื่นในการแก้ไขข้อความค้นหาหลักในเพจของคุณ นี่คือฟังก์ชันquery_posts() แม้ว่าสิ่งนี้จะทำงานในลักษณะเดียวกันกับ WP_Query แต่ก็อาจเป็นปัญหาได้เช่นกัน
การอ้างอิงโค้ด WordPress แนะนำเป็นอย่างยิ่งว่าคุณอย่าใช้ฟังก์ชันนี้ภายในลูปหลักของเว็บไซต์ของคุณ ทางที่ดีควรหลีกเลี่ยงในปลั๊กอินและธีม เนื่องจากจะลบล้างข้อความค้นหาหลักของคุณโดยสิ้นเชิง
แนะนำให้ใช้คลาส WP_Query เนื่องจากคุณสามารถ 'รีเซ็ต' ลูปหลักได้หลังจากที่คุณเรียกใช้แบบสอบถาม เนื่องจาก WP_Query อนุญาตให้คุณเรียกใช้การสืบค้นหลายรายการในลูป คุณจะต้องเข้าใจวิธีนำฟังก์ชัน wp_reset_postdata ไปใช้ด้วย
หากคุณได้ฝังลูปรองไว้ในลูป WordPress หลักแล้ว ฟังก์ชันรีเซ็ตจะถูกวางไว้ที่ส่วนท้ายและมีลักษณะดังนี้:
<?php wp_reset_postdata(); ?>
การดำเนินการนี้จะคืนค่าแท็กเทมเพลตเริ่มต้น และคุณจะกลับมาเป็นเหมือนเดิมก่อนที่จะเริ่มลูปรอง
ปรับแต่งไซต์ WordPress ของคุณด้วย WP Engine
ความสามารถในการปรับเปลี่ยนวิธีแสดงรายการบนเว็บไซต์ของคุณเป็นเพียงประโยชน์อย่างหนึ่งของการใช้ WordPress การทำความเข้าใจ WP_Query และใช้ประโยชน์จากเครื่องมือที่มีให้ในหน้าทรัพยากรสำหรับนักพัฒนาสามารถช่วยคุณสร้างเว็บไซต์ที่ปรับแต่งได้อย่างแท้จริง
ที่ WP Engine เรามุ่งมั่นที่จะทำให้แน่ใจว่าคุณมีทรัพยากรที่จำเป็นในการสร้างเว็บไซต์ที่น่าสนใจ ตรวจสอบโซลูชัน WordPress และแผนโฮสติ้งของเราวันนี้!