เริ่มต้นเขียน Theme ของ WordPress ใช้เอง ตอนที่ 3

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

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

อะไรคือฟังก์ชันใน The Loop?

ฟังก์ชันของ WordPress ตามความเข้าใจของผมคือจะมีอยู่ 2 ประเภท  คือ 1. กลุ่มที่ใช้ได้เฉพาะใน The Loop เท่านั้น  และ 2. กลุ่มที่สามารถใช้นอก The Loop ได้

[Read more...]

739 total views, 4 views today

หมดปัญหาเปิดลิงค์ใน Twitter แล้วไม่ขึ้นแอพ

ปกติแล้วในแอนดรอยด์  มันจะมีฟีเจอร์ Intent อยู่  คือมันจะอนุญาตให้แอพสักตัวนึงทำงานขึ้นมา  เมื่อเราคลิกไปที่ลิงค์ที่กำหนดไว้ (เช่นเวลาคลิกลิงค์ Instagram แล้วจะขึ้นมาให้เราเปิดด้วยแอพ Instagram)

ปัญหาคือไอ้เจ้าฟีเจอร์นี้  มันจะตายทันทีเมื่อลิงค์ที่คลิก  โดนครอบด้วยบริการย่อลิงค์ทั้งหลาย  โดยเฉพาะ t.co ของ Twitter ซึ่งใครใช้ Twitter (โดยเฉพาะใช้ผ่านแอพที่ไม่ใช่ Official) จะทราบดีว่า Intent นั้นตายสนิท  เมื่อเราคลิกลิงค์ใดๆ ในทวิตเตอร์  ก็จะถูกบังคับให้เปิดกับเบราเซอร์อย่างเดียว (Stock Android ก็ดีหน่อย  ที่เบราเซอร์มันส่ง intent ต่อได้  แต่บางเจ้าเช่นเบราเซอร์ของ LG มันส่ง Intent ต่อไม่ได้) ทำให้ฟีเจอร์ Intent นี้ “ง่อย” ไปโดยปริยาย

เมื่อกดลิงค์ Instagram ก็ไม่ขึ้นมาให้เปิดด้วยแอพ Instagram

วันนี้มีแอพดีๆ ตัวนึงมาเสนอครับ  เป็นแอพที่ใช้แก้ปัญหานี้ได้อย่างอยู่หมัดเลย  แอพนี้มีชื่อว่า Unshorten ครับ

[Read more...]

361 total views, no views today

แก้ปัญหา meta_compare ทำงานไม่ถูกต้องใน WordPress

ใน WordPress เราสามารถสั่ง Query โพสต์ออกมาตามค่าใน custom field ได้ (หรือชื่อในเชิงเทคนิคคือ Post Meta) ด้วยการเพิ่มอาร์กิวเมนต์ meta_query ลงไปในขั้นตอนการคิวรี่  อย่างนี้

ซึ่งตามตัวอย่างข้างบน  จะเป็นการสั่งคิวรี่โพสต์จากโพสต์ไทป์ mytype โดยจะดึงจากโพสต์ที่มีค่า mymeta เท่ากับ myvalue

การคิวรี่นี้จะไม่เกิดปัญหาใดๆ ตราบใดที่เป็นการคิวรี่ตาม string ธรรมดา  แต่เมื่อใดก็ตามที่ต้องการเปรียบเทียบในลักษณะอื่นที่นอกเหนือจากข้อความธรรมดา (เช่นตัวเลข  หรือวันที่) การคิวรี่ด้วย meta compare ธรรมดาแบบนี้จะมีปัญหาทันที  เนื่องจากตัว WordPress จะมอง custom field เป็น string ธรรมดาๆ เป็นค่าปริยาย

[Read more...]

588 total views, 2 views today

[เฉพาะกิจ YWC] สิ่งที่ตัวเองสนใจและชอบที่สุด ?

สืบเนื่องมาจากว่า ณ เวลานี้  เหลือเวลาอีกเกือบๆ 23 ชั่วโมงสำหรับการสมัครค่าย YWC11 และด้วยว่าเด็กค่ายนี้โฆษณาค่ายกันเก่งเหลือเกิน (คิดว่าถ้าใช้คำว่า YWC แทนคำว่าครับ/ค่ะได้ คงทำไปแล้ว) เลยตัดสินใจลงสมัครมันดูสักครั้ง

จากเนื้อหาของบล็อกนี้  คงคิดว่าผมน่าจะเหมาะที่จะลงในหมวด Programming มากกว่า  แต่ไม่ล่ะครับ  ผมลง Web Content เพราะตลอดเวลาที่ผมทำบล็อก  ผมมองว่า content is the king มาตลอด  ผมพยายาเขียนสิ่งที่ตัวเองสนใจ  และพยายามเขียนให้ดีกว่าที่มีอยู่  ซึ่งมันก็ส่งผลให้บล้อกผมติดกูเกิลในบางคีย์เวิร์ดเช่นกัน

เอาล่ะ  สำหรับหัวข้อที่ผมต้องเขียนเพื่อส่งเข้าไปยัง YWC นั่นคือหัวข้อ “สิ่งที่ตัวเองสนใจและชอบที่สุด” … คำถามคือ สิ่งตัวเองสนใจและชอบที่สุด มันคืออะไร?

21 ปีกว่าๆ ที่ผมใช้ชีวิตมา  สิ่งที่ผมคิดว่าตัวเองสนใจและชอบที่สุดมีเยอะมากครับ  มันเปลี่ยนแปลงไปเรื่อยๆ  ตลอดเวลาที่ผมโตขึ้น  สิ่งใหม่ๆ มันจะเข้ามาในชีวิตเสมอๆ  และหลายๆ ครั้งมันก็ทำให้ความชอบของเราเปลี่ยนไป  ดังนั้น “สิ่งที่ตัวเองสนใจและชอบที่สุด” น่าจะเป็นคำถามที่ยาก  หรือยากมาก  ที่จะหาคำตอบที่ถูกต้องสำหรับเราจริงๆ ได้  ดังนั้น  ผมจะขอขยายหัวข้อเป็น “สิ่งที่ตัวเองสนใจและชอบที่สุด … ในแต่ละช่วงในชีวิต” ก็แล้วกัน

[Read more...]

2,337 total views, no views today

เมื่อคำสั่ง mysql_xxx ถูกเลิกใช้ใน PHP 5.5

ในภาษา PHP นั้นมีวิธีเชื่อมต่อกับฐานข้อมูล MySQL อยู่หลายแบบมากครับ  เช่น mysql, mysqli, หรือ pdodb ซึ่งวิธีที่โปรแกรมเมอร์ไทยๆ นิยมและถูกสอนให้ใช้มากที่สุด  คือวิธี mysql (พวกคำสั่ง mysql_connect(), mysql_query(), หรือ mysql_fetch_array() นั่นแหละ)

ปัญหาที่เกิดขึ้นแล้วในตอนนี้คือคำสั่งตระกูล mysql ทั้งหลาย  ถูกประกาศ deprecated (เลิกใช้) ไปเรียบร้อยแล้วใน PHP5.5 แม้ว่าในตอนนี้คำสั่งตระกูล mysql จะยังใช้งานได้ตามปกติ  แต่ก็ยังใช้งานได้เพื่อให้โค๊ดเก่าๆ ทำงานได้เท่านั้น (จะขึ้น deprecated error ถ้าเราเปิดแสดง error เอาไว้) และในอนาคตฟังก์ชันกลุ่มนี้ก็จะถูกถอดออกจาก PHP แน่นอน

สาเหตุการเลิกใช้นั้นหลักๆ เนื่องมาจากคำสั่ง mysql พวกนี้เขียนอยู่บน C Wrapper รุ่นเก่าที่ไม่มีการสนับสนุนแล้ว  หรือพูดง่ายๆ คือคำสั่งกลุ่มนี้โดนลอยแพแล้วนั่นเอง  ทาง PHP ก็แนะนำว่าให้ใช้คำสั่งกลุ่ม mysqli หรือ pdodb ในการเชื่อมต่อกับ MySQL แทน  และคำสั่งชุด MySQLi ก็ทำงานร่วมกับ MySQL 4.1 ขึ้นไปได้ดีกว่าอีกด้วย

[Read more...]

2,148 total views, no views today