featured-image

Action และ Filter ใน WordPress ต่างกันอย่างไร?

ในเวิร์ดเพรสนั้นจะมีวิธี Hook การทำงานอยู่ 2 แบบ  คือผ่าน Action และ Filter ซึ่งการทำงานของทั้ง Action และ Filter นี่มันคล้ายกันมาก … ไม่สิ  จริงๆ มันเหมือนกันเลย!!

ไม่เชื่อลองไปเปิดไฟล์ wp-includes/plugin.php ดูแถวๆ บรรทัดที่ 400 กว่าๆ (ตอนนี้ 4.1.1 ก็อยู่ที่  429) จะเจอการประกาศฟังก์ชันเอาไว้ดังนี้

ครับ add_action() มันก็เป็น wrapper ธรรมดาๆ ของ add_filter() นั่นแหละ … อ้าว! แล้วมันต่างกันยังไง?

(more…)

14 total views, 14 views today

Read More

แสดงภาพตัวอย่างอัตโนมัติกรณีไม่ได้ตั้ง Featured Image

ปกติแล้วเวลาเราออกแบบธีมเวิร์ดเพรส  มักจะออกแบบมาเผื่อให้มี Featured Image (อีกชื่อคือ Post Thumbnail) กันอยู่แล้ว  ปัญหาคือเวลาเอาไปใช้จริงๆ เรากลับไม่ได้ตั้งภาพตัวอย่างให้กับทุกๆ โพสต์  ทำให้มันออกมาหน้าตาพิการๆ ไม่เป็นอย่างที่เราต้องการ  คล้ายๆ กับแบบนี้

โพสต์ไม่มีภาพ Featured Image

โดยปกติที่ผมเจอ  จะใช้วิธีเช็ค if … else กับฟังก์ชัน has_post_thumbnail() กัน  ว่ามีภาพ Featured Image หรือไม่  ถ้าออกมาเป็น false จึงค่อยแสดงภาพที่เตรียมไว้ … โค๊ดมันก็จะรกๆ ประมาณนี้

ครับ  มันรก  จริงๆ แล้วเราสามารถทำให้เหลือแค่ the_post_thumbnail() อันเดียวโดดๆ ได้  ด้วยการใช้ Filter เข้ามาช่วยครับ

(more…)

74 total views, 40 views today

Read More

ผมว่านะ พวกคุณควรเลิกใช้ AppServ ได้แล้วล่ะ

AppServ จัดได้ว่าเป็น WAMP Stack ที่ “โคตรนิยม” ในหมู่คนไทย  นิยมขนาดว่าแม้ว่ามันจะหยุดพัฒนาไปแล้วประมาณ 5 ปี คนไทยก็ยังใช้กันอยู่จนถึงทุกวันนี้ (ตายยากน้องๆ Windows XP เลยนะเนี่ย)  คือในช่วงสามสี่ปีที่แล้วมันก็ยังโอเคนะครับ  ยังพอจะใช้กันได้แบบไม่มีปัญหา  แต่ปัจจุบันด้วยความเก่าของมัน  ทำให้หลายๆ คนเจอปัญหาเมื่อเอาเว็บไปลงใน Production กันแล้วครับ

ปัญหาหลักๆ ที่มักจะเจอกันคือปัญหาของเวอร์ชัน PHP ครับ ในขณะที่ซอฟต์แวร์ตัวอื่นใน AppServ ดูไม่ค่อยจะเป็นปัญหาเท่าไหร่ (ถ้าไม่ได้มักง่ายขนาดเอา AppServ ไปทำ Production Server นะ)

PHP 5.2 ปัญหาสำคัญใน AppServ

AppServ หยุดพัฒนาไปเมื่อปี 2009 และเวอร์ชันสุดท้ายของ AppServ มันมาพร้อมกับ PHP 5.2 ที่เลิกซัพพอร์ตไปตั้งแต่ปี 2011 ครับ  ในขณะที่โฮสต์ส่วนใหญ่ที่เปิดให้บริการอยู่ตอนนี้  เท่าที่ผมทราบคือจะใช้ PHP 5.3 กันเป็นหลัก (5.3 ก็เพิ่งหมดซัพพอร์ตไปเมื่อเดือนสิงหาคมที่ผ่านมาครับ  คิดว่าโฮสต์หลายที่น่าจะไล่อัพเกรดเป็น 5.4 หรือ 5.5 กันอยู่)

อ้อ มันมีรุ่นที่มากับ PHP6-Dev ด้วย  อันน่าช่างหัวมันครับ PHP6 โดนฝังกลบไปแล้ว (แถมมันก็เป็น build เมื่อปี 2009 นั่นแหละ) Major รุ่นถัดไปจะเป็น PHP7 ครับ

ตั้งแต่ PHP 5.3 เป็นต้นมา  มีฟีเจอร์ใหม่ๆ หลายตัวที่ถูกเพิ่มเข้ามา  และยังมีฟีเจอร์เก่าๆ อีกหลายตัวที่ถูกยกเลิกหรือเอาออกไปจาก PHP ด้วยเช่นกันครับ (และหลายๆ ตัวก็ยังเห็นคนใช้กันอยู่ด้วยสิ)

(more…)

8,271 total views, 23 views today

Read More

การเรียกใช้ Partial Template ใน WordPress

ธีมของเวิร์ดเพรสนั้น  นอกจากการสร้างไฟล์ตาม Hierarchy แล้ว  มันยังรองรับการตัด Template ออกเป็นส่วนๆ  แล้วค่อยเรียกเข้ามาแสดงใน Template หลักอีกด้วย  ซึ่งส่วนหลักๆ ที่เรามักจะใช้กัน  จะมีอยู่สี่ส่วนด้วยกัน  นั่นคือ

  1. ส่วน header.php
  2. ส่วน footer.php
  3. ส่วน sidebar.php
  4. ส่วน searchform.php

และนอกจากสี่ส่วนนี้แล้ว  เวิร์ดเพรสยังอนุญาตให้เราสร้าง Template Part ขึ้นมาเอง  และเรียกมาแสดงผลผ่านฟังก์ชัน  get_template_part();  ได้อีกด้วย

ข้อดีของการใช้ Partial Template

หลายๆ ครั้งที่เราสร้าง Template ให้กับหลายๆ หน้า  และมีบางส่วนที่เป็นโค๊ดซ้ำๆ กัน (เช่นส่วนแสดงชื่อโพสต์และวันที่, ส่วนแสดงเนื้อหา, ส่วนแสดงข้อมูลผู้โพสต์) หากเราสร้างออกมาเป็น Template ปกติ  เมื่อมีการแก้ไขส่วนที่โค๊ดซ้ำๆ กันนี้  เราจะต้องไปแก้ไขในทุกๆ Template ที่เราสร้างไว้  แต่ถ้าหากเราแบ่งโค๊ดส่วนนี้ออกมาเป็น Partial Template เราสามารถที่จะแก้ไขจากไฟล์เดียว  ไม่ต้องวนแก้หลายๆ ที่  และนั่งปวดหัวเช็คว่าแก้ครบหรือยังอีกต่อไป

อีกหนึ่งความสะดวกของการแบ่ง Template ออกแบบส่วนๆ ก็คือเมื่อเราต้องการปิดการแสดงผลบางส่วน (เช่นอยากปิดส่วน Author Info) เราก็แค่ไปคอมเมนต์โค๊ดออกแค่บรรทัดเดียว  แทนที่จะต้องไปคอมเมนต์ HTML ยาวๆ  แถวยังเสี่ยงไปคอมเมนต์ผิด Nest อีกต่างหาก  ซึ่งจุดนี้จะทำให้โค๊ดของเราสะอาดขึ้นด้วยครับ

(more…)

448 total views, 6 views today

Read More

Cache ในเวิร์ดเพรส ด้วย WP Super Cache

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

ผมทดสอบความเร็วการเข้าเว็บด้วย http://webwait.com/ ครับ  ผมเข้าใจว่ามันวัดจากเน็ตเรานี่แหละ  โดยเมื่อปิดใช้งานแคช  บล็อกนี้จะใช้เวลาเข้าถึงเฉลี่ยประมาณ 1.2 วินาที ตามภาพนี้

การเข้าถึงโดยไม่มีแคช
การเข้าถึงโดยไม่มีแคช

จริงๆ มันก็จัดว่าต่ำอยู่แล้ว (ก็บล็อกมันไม่ได้โหลดหนักอะไรนี่เนอะ) แต่เพื่อความสนุกส่วนตัว  เลยจะลองเปิดใช้งาน Cache ดูครับ

(more…)

486 total views, 4 views today

Read More