การ Query Loop ของ เวิร์ดเพรส คือ?
คำสั่ง WP_Query เป็นการดึงบทความต่างๆที่เราเขียนไว้มาแสดงบนหน้าเว็บไซต์ สามารถเลือกหมวดหมู่ หรือ จัดการได้อย่างหลากหลายด้วยชุดคำสั่งนี้
คำสั่ง WP_Query
- $args คือ ตัวแปรที่ไว้เก็บค่าต่างๆที่จะมากำหนดในลูป
- ‘category_name’ => ‘news’ คือ ค่าที่กำหนดให้นำบทความในหมวดหมู่ news มาแสดง
- posts_per_page’ => 4 คือ ค่าที่กำหนดให้แสดงจำนวน 4 บทความ
- คำสั่ง $the_query = new WP_Query( $args ); คือ การนำตัวแปรที่เราสร้างมาสร้างลูปใหม่แล้วใส่เข้าไปในตัวแปรใหม่ที่ชื่อว่า the_query แทน
- คำสั่ง while ( $the_query->have_posts() ) : $the_query->the_post(); คือ คำสั่งวนลูปหาบทความที่อยู่ในเกณฑ์ที่เรากำหนดไว้มาแสดง
- คำสั่ง the_title(); คือ การนำหัวข้อของบทความนั้นๆมาแสดง
- คำสั่ง the_content(); คือ การนำเนื้อหาของบทความนั้นๆมาแสดง
- คำสั่ง endwhile; คือ การปิดการวนลูป
- คำสั่ง wp_reset_postdata(); คือ การรีเซ็ทค่าต่างๆในการวนลูปเพื่อจะได้ไม่กระทบค่ากับลูปอื่นที่เราทำต่อไป
<?php $args = array( 'category_name' => 'news', 'posts_per_page' => 4 ); $the_query = new WP_Query( $args ); ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php the_title(); ?> <?php the_content(); ?> <?php endwhile; wp_reset_postdata(); ?>
ตัวแปร WP_Query
[table width=”100%”]
คำสั่ง,คำอธิบาย
‘category_name’ => ‘your_category’,เลือกหมวดหมู่ที่กำหนดมาแสดง
‘post_type’ => ‘your_posttype’,เลือก post_type ที่กำหนดมาแสดง
‘tag’ => ‘your_tag’,เลือก tag ที่กำหนดมาแสดง
‘posts_per_page’ => 4,กำหนดให้แสดงจำนวน 4 บทความ
‘offset’ => 3,กำหนดให้ไม่ต้องแสดง 3 บทความแรก
‘order’ => ‘ASC’,”กำหนดให้แสดงเรียงจาก (1, 2, 3, a, b, c)”
‘order’ => ‘DESC’,”กำหนดให้แสดงเรียงจาก (3, 2, 1, c, b, a)”
[/table]
ข้างต้นคือตัวแปรที่ใช้กันบ่อยๆ แต่ยังมีตัวแปรที่สามารถใช้ได้อีกหลากหลาย เข้าไปศึกษาเพิ่มเติมได้ที่ Codex WordPress