บังคับการแสดง Entry ด้วย query_posts()
In Wordpress | no comments yet | permalink
ตามปรกติ เราสามารถ Set การแสดง Entry ได้ที่หน้า Reading Option ว่าจะให้แสดงผลกี่ Entry ต่อหน้าได้ แต่ว่าทุกหน้าจะแสดงเหมือนกันหมด ไม่ว่าหน้านั้นจะเป็นหน้าใด ซึ่งบางครั้งก็ไม่เหมาะสม ตัวอย่างเช่น หน้าแรก กับหน้า Category หรือ Archives ถ้าเรา Set ใน Reading Option เป็น 1 หน้าแรกเราจะแสดงเพียง 1 Entry และหน้า Archives ก็แสดงแค่ 1 Entry เหมือนกัน ซึ่งเราอยากให้มันแสดงมากกว่านั้น
ตัวอย่าง :
http://www.7blogger.com/ หน้าแรกแสดง 1 Entry
http://www.7blogger.com/category/wordpress/
หน้า Category แสดง 10 Entry
เราจะใช้ query_posts() ช่วยบังคับให้แต่ละหน้าแสดงไม่เหมือนกันได้ครับ ซึ่งนอกจากนี้แล้ว function นี้ยังสามารถบังคับรูปแบบการแสดง Entry ได้อีกหลากหลายมากครับ
รูปแบบของ Function :
query_posts($query_string . “&order=ASC”)
$query_string จะเป็นรูปแบบการแสดงผล
order จะเป็นการเรียงลำดับ ค่าตั้งต้นคือ DESC คือเรียงจากมากไปน้อย ส่วน ASC คือน้อยไปมาก
วิธีใช้ :
นำ Code ข้างล่าง ไปวางก่อน Loop ของ WP
query_posts(’showposts=10′);
(ในตัวอย่างจะเป็นการบังคับให้ WP แสดง Post 10 posts ในหน้านั้น)
*Loop คือส่วนแสดงผลใน WP หน้าตาจะเป็นประมาณนี้
while (have_posts()) : the_post();
Parameter :
Category Parameters
บังคับให้แสดงผลตาม Category
- cat - แสดงตาม Category ID
ตัวอย่าง :
query_posts(’cat=4′);
แสดงเฉพาะ cat ID 4query_posts(’cat=2,6,17,38′);
แสดง cat ID 2,6,17,38query_posts(’cat=-3′);
แสดงทั้งหมด ยกเว้น ID -3- category_name - แสดงตาม Category Name
ตัวอย่าง :
query_posts(’category_name=Staff Home’);
แสดงผลเฉพาะ Staff Home CategoryAuthor Parameters
บังคับการแสดงผลตามผู้เขียน
- author_name
- author
วิธีใช้เหมือนกับ Category โดยชื่อที่ใช้อ้างจะเอามาจาก nickname นะครับ
Time Parameters
แสดงผลตามวันเวลาที่กำหนด
- hour=
แสดงตามชั่วโมงที่ post- minute=
แสดงตามนาทีที่ post- second=
แสดงตามวินาทีที่ post- day=
ใช้วันที่ของเดือนนั้น ถ้าไม่กำหนดจะเป็นเดือนปัจจุบัน- monthnum=
แสดงตามเดือนที่ post- year=
แสดงตามปีที่ postโดยส่วนใหญ่ parameter นี้จะใช้ร่วมกันหลายๆตัวนะครับ
Post & Page Parameters
บังคับการแสดงผล Post และ Page
- p=1
ใช้ post ID เพื่อแสดงผล- name=first-post
แสดงตาม Post Slug- page_id=7
ใช้ page ID เพื่อแสดงผล- pagename=about
แสดงตาม Page Slug- showposts=1
แสดงจำนวน posts ต่อหน้า- posts_per_page=10
แสดงจำนวน posts ต่อหน้า ถ้าใส่ -1 คือแสดงทั้งหมดCombining Parameters
การใช้หลายๆ parameters ร่วมกันตัวอย่าง :
query_posts(’cat=3&year=2004′);
ก็จะเป็นการแสดง cat ID = 3 และแสดงเฉพาะ ปี 2004 เท่านั้น
ก็หวังว่าจะมีประโยชน์บ้างนะครับ มีบาง parameter ที่ผมยังไม่เข้าใจว่ามันทำอะไร(Offset) ยังไงก็รบกวนศึกษาทดลองเองนะครับที่นี่ ได้ยังไงก็บอกด้วยแระกัน ถ้าทีหลังผมรู้จะเข้ามาแก้ครับ
ขอจบ Entry นี้แต่เพียงเท่านี้ครับ Bye.
เรื่องที่เกี่ยวข้อง
email this | tag this | digg this | trackback | comment RSS feed
Leave a Comment