เริ่มต้นเขียน 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

สำหรับตอนที่สองก็ขอจบลงสั้นๆ เท่านี้ครับ และในตอนต่อไป ผมจะพาไปดูฟังก์ชั่นสำหรับแสดงเนื้อหาต่างๆ ของโพสต์นะครับ แล้วเจอกัน

บทความทั้งหมดในชุดนี้

  1. เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 1 – โครงสร้างไฟล์พื้นฐานของธีม
  2. เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 2 – รู้จักกับ The Loop
  3. เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 3 – ฟังก์ชันในลูปที่ใช่บ่อย

Posted by Jirayu

WordPress Developer ที่พอมีประสบการณ์อยู่บ้าง วันไหนไม่ทำงานอยู่บ้านว่างๆ ก็นั่งเลี้ยงแมว

Comments