Month: April 2018

  • ปิด auto update ให้ปลั๊กอินเป็นรายตัว

    ปิด auto update ให้ปลั๊กอินเป็นรายตัว

    จากงานล่าสุดของผมเอง  ได้เจอปัญหาหนึ่งกับปลั๊กอิน GD Star Rating ว่าเกิดปัญหา Allowed Memory Size Exhausted หลังจากอัพเกรดไปเป็นรุ่น 2.4 โดยปัญหาเกิดจากการเรียกใช้ฟังก์ชัน gdrts_render_rating() โดยตรงในไฟล์เท็มเพลตเท่านั้น  ซึ่งทางแก้คือดาวน์เกรดกลับไปใช้รุ่น 2.3.2 ชั่วคราว ปัญหาคือระบบอัพเดทของเวิร์ดเพรสยังคงแจ้งเตือนว่ามีอัพเดทอยู่  ซึ่งหากจะปิดระบบแจ้งเตือนอัพเดทไปทั้งหมด  ก็จจะทำให้พลาดการแจ้งเตือนอัพเดทอื่นๆ ไปด้วย  ดังนั้นเลยเลือกที่จะปิดแจ้งเตือนเป็นรายตัวดีกว่า หลักการคือเราจะฮุคเข้าไปในฟิลเตอร์ pre_set_site_transient_update_plugins ซึ่งเป็นฟิลเตอร์ของข้อมูลที่ใช้ตรวจสอบรุ่นของปลั๊กอิน  และเราจะทำการ unset ตัวแปรที่เก็บข้อมูลอัพเดทปลั๊กอินที่เราต้องการปิดออกไป  โดยชื่อปลั๊กอินและรุ่นที่ต้องการล็อคเอาไว้จะส่งเข้ามาผ่านฟิลเตอร์ wp63_lock_plugin_version อีกทีหนึ่ง โค้ดคร่าวๆ จะเป็นอย่างนี้ (ก็อปไปวางใน functions.php ได้เลย) function wp63_lock_plugin_version($data){ $lock = apply_filters( “wp63_lock_plugin_version”, array() ); if(isset( $data->response )){ foreach( $data->response as $key => $value ){ if( isset($lock[$value->slug]) && $value->new_version […]

  • วิธีเพิ่ม oEmbed Handler สำหรับการ Embed เนื้อหาจากเว็บที่ไม่รองรับ oEmbed

    วิธีเพิ่ม oEmbed Handler สำหรับการ Embed เนื้อหาจากเว็บที่ไม่รองรับ oEmbed

    ในเวิร์ดเพรสจะมีฟีเจอร์ที่เรียกว่า oEmbed ซึ่งทำหน้าที่แปลง URL ของเว็บต่างๆ ให้อยู่ในรูปแบบโค้ด Embed โดยอัตโนมัติ  เช่นเวลาเราวาง URL ของวิดีโอสักชิ้นในยูทูบลงใน editor มันก็จะ embed วิดีโอตัวนั้นลงมาให้โดยอัตโนมัติ โดยปกติแล้ว oEmbed รองรับเว็บเป็นจำนวนมากอยู่แล้ว  เช่นวิดีโอจาก YouTube และ Vimeo, โพสต์จาก Twitter และ Facebook, หรือเพลงจาก Spotify (ดูเว็บที่รองรับทั้งหมดที่นี่) ทีนี้แม้ว่าตัวเวิร์ดเพรสเองจะรองรับ oEmbed กับบริการเป็นจำนวนมากอยู่แล้ว  แต่ก็ยังมีอีกหลายบริการที่ยังไม่รองรับ  อย่างเช่นงานล่าสุดที่ผมทำ  ที่จะต้องรองรับการ embed วิดีโอจากเว็บไซต์ Subsplash.com ด้วย  หากแต่ว่าตัวเวิร์ดเพรสเองนั้นกลับไม่รองรับเว็บไซต์นี้ ทางของเราก็คือเพิ่มเว็บที่ต้องการเข้าไปเองเลย