ในธีม ListMode (หรือธีมตระกูล Listing / Directory บน WordPress) การปรับจำนวนรายการลิงก์/โพสต์ให้แสดงผลเยอะขึ้น สามารถปรับได้ 2 จุดหลัก ขึ้นอยู่กับว่าต้องการปรับใน หน้าหลัก (Archive/Index) หรือปรับใน Widget/Page Builder:
1. ปรับจำนวนรายการหลักทั้งเว็บ (WordPress Core)
หากต้องการให้หน้าแรก, หน้าหมวดหมู่ (Category), หน้าค้นหา หรือหน้า Archive แสดงจำนวนรายการต่อหน้าเยอะขึ้น:
- เข้าไปที่หลังบ้าน WordPress -> Settings (ตั้งค่า) -> Reading (การอ่าน)
- ดูที่หัวข้อ Blog pages show at most (หน้าบล็อกแสดงมากที่สุด)
- เปลี่ยนตัวเลขจากเดิม (ปกติคือ
10) ให้เป็นจำนวนที่ต้องการ เช่น20,50หรือ100 - กด Save Changes (บันทึกการเปลี่ยนแปลง)
2. ปรับใน Elementor / Page Builder (หากใช้สร้างหน้าบ้าน)
หากหน้านั้นถูกสร้างด้วย Elementor หรือ WPBakery:
- เปิดหน้านั้นขึ้นมา แล้วกด Edit with Elementor
- คลิกที่บล็อก/โมดูลแสดงรายการ (เช่น Post Grid, Listing Items, หรือ ListMode Widget)
- ไปที่แถบ Content (เนื้อหา) -> หัวข้อ Query หรือ Layout
- หาช่อง Posts Per Page (หรือ Items Limit / Number of Posts)
- กรอกจำนวนตัวเลขที่ต้องการให้แสดงผล หรือใส่
-1หากต้องการให้แสดงทั้งหมดโดยไม่จำกัด - กด Update
3. ปรับใน Theme Options / Customizer
หากธีมใช้ระบบตั้งค่าเฉพาะตัวของ ListMode:
- เข้าไปที่ Appearance (รูปแบบเว็บ) -> Customize (ปรับแต่ง) หรือเมนู ListMode Options ในแถบด้านข้าง
- หาหัวข้อเกี่ยวกับ Listing Settings, Archive Settings, หรือ Blog Layout
- ปรับค่าในช่อง Number of Listings to Show ให้เป็นจำนวนที่ต้องการ
- กด Publish (เผยแพร่)
💡 ข้อควรระวังเรื่อง Performance: การดึงรายการมาแสดงพร้อมกันคราวละมากๆ (เช่น เกิน 30–50 รายการต่อหน้า) โดยเฉพาะรายการที่มีรูปภาพ Thumbnail หรือดึงข้อมูล Database หนักๆ อาจทำให้หน้านั้นโหลดช้าลงอย่างเห็นได้ชัด หากต้องการแสดงเยอะ แนะนำให้เปิดใช้งาน Lazy Load สำหรับรูปภาพ หรือใช้ระบบ Pagination / Load More ร่วมด้วยเพื่อลดโหลดของเซิร์ฟเวอร์
ให้ดึงภาพมา auto ไม่ต้องไปใส่ใน feature image
หากต้องการให้ระบบดึงรูปภาพแรกในเนื้อหาโพสต์ (Post Content) มาแสดงเป็น Thumbnail โดยอัตโนมัติ โดยไม่ต้องกดเลือก Featured Image เองทีละโพสต์ ทำได้ 2 วิธีหลักครับ
วิธีที่ 1: ใช้ฟังก์ชัน Regex ดึงรูปแรกจาก Content (แนะนำสำหรับแก้ Code)
เขียนฟังก์ชันไปแกะแท็ก <img> รูปแรกในเนื้อหา หากโพสต์นั้นไม่ได้ตั้ง Featured Image ไว้ ระบบจะสลับไปดึง URL ของรูปแรกมาแสดงทันที
1. เพิ่มฟังก์ชันใน functions.php ของ Child Theme (หรือใส่ผ่านปลั๊กอิน WPCode)
PHP
function get_first_image_from_content() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
// ดึงรูปแรกจากแท็ก <img> ใน post_content
if ( preg_match_all('/<img.+?src=[\'"]([^\'"]+)[\'"].*?>/i', $post->post_content, $matches) ) {
$first_img = $matches[1][0];
}
// หากในเนื้อหาไม่มีรูปเลย สามารถใส่รูป Default สำรองไว้ตรงนี้ได้
if ( empty($first_img) ) {
$first_img = get_template_directory_uri() . '/images/default-thumbnail.jpg';
}
return $first_img;
}
2. วิธีนำไปเรียกใช้ในไฟล์แสดงผลธีม (เช่น single.php, archive.php หรือไฟล์ลูปของธีม)
เปลี่ยนจุดที่ดึง the_post_thumbnail() ให้เช็กว่ามี Featured Image หรือไม่ หากไม่มีให้เรียกฟังก์ชันข้างต้น:
PHP
if ( has_post_thumbnail() ) {
the_post_thumbnail('medium');
} else {
echo '<img src="' . esc_url( get_first_image_from_content() ) . '" alt="' . esc_attr( get_the_title() ) . '" />';
}
วิธีที่ 2: ใช้ปลั๊กอินจัดการให้อัตโนมัติ (ไม่ต้องแตะไฟล์ธีม)
หากไม่ต้องการแก้ไขไฟล์ธีมเอง สามารถติดตั้งปลั๊กอินฟรีเพื่อรันระบบดึงรูปภาพให้อัตโนมัติได้:
- Auto Featured Image (Auto Post Thumbnail): ปลั๊กอินจะทำการสแกน
post_contentทันทีเมื่อมีการบันทึกโพสต์ แล้วดึงรูปแรกเข้าระบบรูปภาพตัวอย่างอัตโนมัติ - Quick Featured Images: สามารถตั้งค่าเงื่อนไขให้ดึงรูปแรกในเนื้อหามาใช้แสดงผลแทนยามไม่มี Featured Image ได้แบบอัตโนมัติทั้งเว็บ