แก้ปัญหา meta_compare ทำงานไม่ถูกต้องใน WordPress
ใน WordPress เราสามารถสั่ง Query โพสต์ออกมาตามค่าใน custom field ได้ (หรือชื่อในเชิงเทคนิคคือ Post Meta) ด้วยการเพิ่มอาร์กิวเมนต์ meta_query ลงไปในขั้นตอนการคิวรี่ อย่างนี้
$args = array( 'post_type' => "mytype", 'meta_query' => array( array( 'key' => "mymeta", 'value' => "myvalue", 'compare' => "=" ) ) ); $myQuery = new WP_Query($args);
ซึ่งตามตัวอย่างข้างบน จะเป็นการสั่งคิวรี่โพสต์จากโพสต์ไทป์ mytype โดยจะดึงจากโพสต์ที่มีค่า mymeta เท่ากับ myvalue
การคิวรี่นี้จะไม่เกิดปัญหาใดๆ ตราบใดที่เป็นการคิวรี่ตาม string ธรรมดา แต่เมื่อใดก็ตามที่ต้องการเปรียบเทียบในลักษณะอื่นที่นอกเหนือจากข้อความธรรมดา (เช่นตัวเลข หรือวันที่) การคิวรี่ด้วย meta compare ธรรมดาแบบนี้จะมีปัญหาทันที เนื่องจากตัว WordPress จะมอง custom field เป็น string ธรรมดาๆ เป็นค่าปริยาย