เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 2
จากตอนที่แล้ว ผมพาไปดูโครงสร้างไฟล์และคอนฟิกธีมเบื้องต้นใน?เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 1 กันไปแล้ว ตอนนี้จะพาไปดูกับส่วนที่สำคัญที่สุดในธีม นั่นคือ The Loop ครับ
ก่อนอื่นต้องเข้าใจวิธีการแสดงเนื้อหาของ WordPress นิดนึง คือใน WordPress จะใช้วิธีแสดงผลข้อมูลอย่างเดียวกันหมด คือผ่านการลูปครับ ซึ่งการลูปแต่ละรอบ WordPress จะปรับค่าตัวแปรต่างๆ ให้ตรงกับเนื้อหาขณะนั้นให้อัตโนมัติ เราสามารถเรียกแสดงผลผ่านฟังก์ชั่นต่างๆของเวิร์ดเพรสะ หรือตัวแปร $post ได้เลย
โครงสร้างพื้นฐาน The Loop
จริงๆแล้ว The Loop นั้นก็คือ while ปกติของ php นั่นเองครับ วิธีใช้ก็ประมาณนั้น
while (have_posts()) : the_post(); .. ใส่โค๊ดอื่นๆตรงนี้ .. endwhile;
หรือบางคนอาจจะคุ้นกับแบบนี้มากกว่า
while (have_posts()){ the_post(); .. ใส่โค๊ดอื่นๆตรงนี้ .. }
การทำงานข้างบนคือจะ while ไปจนกว่า have_post() จะให้ผลเป็น false (ซึ่งก็คือหมดเนื้อหาที่จะแสดงแล้วนั่นเอง) โดยที่ have_post(); จะทำงานตาม WP_Query นั่นเองครับ ซึ่งส่วนนี้ผมจะไม่ขอกล่าวถึงแล้วกัน
เมื่อเข้ามาใน Loop แล้ว ก็จะสั่งคำสั่ง the_post(); เพื่ออัพเดทค่าให้คำสั่งต่างๆ ให้เป็นค่าปัจจุบันตามลำดับการ loop (เช่นพวก the_content() หรือ the_title() ที่จะอัพเดทเนื้อหาไปเรื่อยๆตามลำดับ)
เวลาที่เราใช้จริง เราอาจจะเพิ่มเงื่อนไข if(have_post()) เข้าไปเพื่อเช็คว่ามีโพสต์ใสคิวรี่หรือเปล่า เพื่อแสดงข้อความว่าไม่มีโพสต์ในกรณีที่ไม่มีเนื้อหาให้แสดงก็ได้เช่นกันครับ
กรณีทำหลาย Loop
ในบางครั้ง เราอาจจะมีการเรียกเนื้อหาหลายประเภทขึ้นมาแสดงในหน้าเดียว (ซึ่งจะเห็นบ่อยในกรณีที่เราเอาเวิร์ดเพรสไปทำเว็บที่มีเนื้อหาหลายๆประเภท) ในกรณีนี้เราสามารถสร้างออพเจ็กท์ The Loop ขึ้นมาใช้ได้เช่นกันครับ ซึ่ง WordPress ก็ได้เตรียมคลาส WP_Query() เอาไว้ให้เราใช้กันอยู่แล้ว
$my_query = new WP_Query($args); while ($my_query->have_posts()) : $my_query->the_post(); .. ใส่โค๊ดอื่นๆตรงนี้ .. endwhile;
ในขั้นตอนการประกาศออพเจ็กท์นั้น เราจะต้องกำหนด arguments ต่างๆให้กับออพเจ็กท์ด้วย โดยกำหนดเป็น Array ใส่ในตัวแปร $args ซึ่งค่าต่างๆสามารถดูกันได้ในนี้ครับ: Codex:?Class Reference/WP Query
สำหรับตอนที่สองก็ขอจบลงสั้นๆ เท่านี้ครับ และในตอนต่อไป ผมจะพาไปดูฟังก์ชั่นสำหรับแสดงเนื้อหาต่างๆ ของโพสต์นะครับ แล้วเจอกัน
บทความทั้งหมดในชุดนี้
- เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 1 – โครงสร้างไฟล์พื้นฐานของธีม
- เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 2 – รู้จักกับ The Loop
- เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 3 – ฟังก์ชันในลูปที่ใช่บ่อย