คำถามติดแท็ก meta-query

หมายถึงกลไกที่สร้างขึ้นในคลาส WP_Query สำหรับการสืบค้นฐานข้อมูลสำหรับข้อมูลการโพสต์รวมถึงเพจและ CPT โดยยึดตามข้อมูลเมตาของโพสต์

12
meta_query ที่มีค่าเมตาเป็นอาร์เรย์ลำดับ
ฉันกำลังทำงานในโครงการที่ฉันสร้างประเภทโพสต์ที่กำหนดเองและข้อมูลที่กำหนดเองที่ป้อนผ่านกล่องเมตาที่เชื่อมโยงกับประเภทโพสต์ที่กำหนดเองของฉัน ไม่ว่าด้วยเหตุผลใดฉันจึงตัดสินใจเขียนโค้ดเมตาบ็อกในลักษณะที่อินพุตในแต่ละเมท็อกซ์เป็นส่วนหนึ่งของอาเรย์ ตัวอย่างเช่นฉันกำลังเก็บลองจิจูดและละติจูด: <p> <label for="latitude">Latitude:</label><br /> <input type="text" id="latitude" name="coordinates[latitude]" class="full-width" value="" /> </p> <p> <label for="longitude">Longitude:</label><br /> <input type="text" id="longitude" name="coordinates[longitude]" class="full-width" value="" /> </p> ไม่ว่าจะด้วยเหตุผลใดฉันชอบความคิดที่ว่ามีการเข้า postmeta เอกพจน์สำหรับแต่ละ metabox ที่save_postตะขอฉันบันทึกข้อมูลดังนี้: update_post_meta($post_id, '_coordinates', $_POST['coordinates']); ฉันทำสิ่งนี้เพราะฉันมีสาม metaboxes และฉันชอบเพียงแค่มี 3 postmeta ค่าสำหรับแต่ละโพสต์; อย่างไรก็ตามฉันได้ตระหนักถึงปัญหาที่อาจเกิดขึ้นกับสิ่งนี้แล้ว ฉันอาจต้องการใช้ WP_Query เพื่อดึงโพสต์บางอย่างตามค่าเมตาเหล่านี้ ตัวอย่างเช่นฉันอาจต้องการรับโพสต์ทั้งหมดที่มีค่าละติจูดสูงกว่า 50 หากฉันมีข้อมูลนี้ในฐานข้อมูลทีละรายการบางทีอาจใช้คีย์latitudeฉันจะทำสิ่งต่อไปนี้: $args = …

2
Meta_query เปรียบเทียบคำอธิบายของโอเปอเรเตอร์
ฉันสังเกตเห็นว่ามีกลุ่มตัวดำเนินการที่สามารถใช้สำหรับการเปรียบเทียบใน meta_query อย่างไรก็ตามฉันไม่แน่ใจว่าโอเปอเรเตอร์ที่ฉันควรใช้คืออะไรมันสับสน=และLIKEโอเปอเรเตอร์ ฉันต้องการทราบว่าผู้ให้บริการแต่ละรายมีความหมายอย่างไรและฉันควรใช้พวกเขาอย่างไร = != > >= < <= LIKE NOT LIKE IN NOT IN BETWEEN NOT BETWEEN NOT EXISTS ขอบคุณ

9
การใช้ข้อความค้นหาเมตา ('meta_query') กับข้อความค้นหา ('s')
พยายามสร้างการค้นหาที่ไม่เพียง แต่ค้นหาค่าเริ่มต้น (ชื่อเนื้อหา ฯลฯ ) แต่ยังเป็นฟิลด์ที่กำหนดเองโดยเฉพาะ ข้อความค้นหาปัจจุบันของฉัน: $args = array( 'post_type' => 'post', 's' => $query, 'meta_query' => array( array( 'key' => 'speel', 'value' => $query, 'compare' => 'LIKE' ) ) ); $search = new WP_Query( $args ) ... สิ่งนี้จะส่งคืนโพสต์ที่ตรงกับทั้งคำค้นหาและแบบสอบถามเมตา แต่ฉันต้องการให้ส่งคืนโพสต์ด้วยซึ่งตรงกับหนึ่งในนั้น ความคิดใด ๆ

3
meta_query ที่ซ้อนกันพร้อมกับคีย์ความสัมพันธ์หลายรายการ
ฉันอยากรู้ว่า Wordpress สามารถทำงานซ้อนกันได้meta_queryหรือไม่โดยที่แต่ละคนมีคีย์สัมพันธ์ต่างกัน ในฐานะของ Wordpress 3.0 tax_queryสามารถทำหน้าที่นี้ได้ ฉันสงสัยว่าสิ่งนี้เทียบเท่าmeta_queryหรือไม่ $results = query_posts( array( 'post_type' => 'event_id', 'meta_query' => array( 'relation' => 'AND', array( 'relation' => 'OR', array( 'key' => 'primary_user_id', 'value' => $user_id ), array( 'key' => 'secondary_user_id', 'value' => $user_id ) ), array( 'key' => 'date', 'value' => array( $start_date, …

5
ฉันจะสร้าง meta_query ด้วยอาร์เรย์เป็น meta_field ได้อย่างไร
นี่คือ args สำหรับการค้นหาของฉัน: $args = array( 'post_type' => 'news', 'meta_query' => array( array( 'key' => 'topics', 'value' => 'sports', ) ) ); สิ่งนี้ใช้ได้เมื่อtopicsเป็นสตริง แต่ไม่ใช่เมื่อเป็นอาร์เรย์ ฉันต้องการให้แบบสอบถามนี้ทำงานเมื่อtopicsเป็นตัวอย่างarray( 'sports', 'nonprofit', etc. ) มีวิธีสร้างแบบสอบถาม meta ด้วยอาร์เรย์เป็น meta_key หรือไม่
16 query  meta-query 

4
การกรองหลายฟิลด์ที่กำหนดเองด้วย WP REST API 2
ฉันต้องการกรองโพสต์ตามฟิลด์ที่กำหนดเองหลาย ACF ที่มีและความสัมพันธ์ บางสิ่งเช่นนี้ $args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'blue', 'compare' => '=', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); ฉันอาจมีตัวกรองมากกว่านี้ ฉันจะแปลงเป็นตัวกรอง REST API …

2
meta_query 'เปรียบเทียบ' => 'IN' ไม่ทำงาน
ก่อนอื่นฉันรู้ว่ามันซ้ำซ้อน แต่ไม่มีคำตอบเก่า ๆ ที่มีประโยชน์ post_metaฉันค้นหาในโพสต์ผ่าน นี่คือรหัสของฉันซึ่งปัจจุบันไม่มีอะไรคืน $args = array( 'numberposts' => -1, 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'system_power_supply', 'value' => array('single', 'redundant'), 'compare' => 'IN', ) ) ); $query = new WP_Query($args); echo $query->found_posts; ถ้าฉันลบmeta_queryมันทำงาน ฉันแน่ใจในสิ่งเหล่านี้: ไม่มีความผิดพลาดในการสะกดคำเป็นหรือkeyvalue โพสต์ประเภทคือ post มีเป็นโพสต์ที่มีค่า 'เดียว' ใน 'system_power_supply' a แต่สาขาที่โพสต์จะถูกสร้างโดยฟิลด์ที่กำหนดเองขั้นสูง

2
ใช้ REGEXP ในคีย์ meta_query meta_query
ฉันรู้ว่าฉันสามารถใช้ REGEXP ใน WP_Query ดังนี้: $query = new WP_Query(array( 'posts_per_page' => -1, 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'custom_fields', 'value' => 'foo[(][0-9][)]', // with regex stuff 'compare' => 'REGEXP', ), ), )); แต่ฉันต้องการนิพจน์ทั่วไปในคีย์ด้วย แบบนี้: $query = new WP_Query(array( 'posts_per_page' => -1, 'post_status' => 'publish', 'meta_query' => array( …

1
การใช้ meta_query ฉันจะกรองตามฟิลด์ที่กำหนดเองและสั่งซื้อจากฟิลด์อื่นได้อย่างไร
ด้วยรหัสต่อไปนี้ (ใน function.php) โพสต์ของฉัน (จากเหตุการณ์ CPT) ถูกจัดเรียงโดย _end_date แทน _start_date อะไรคือทางออกที่ถูกต้องสำหรับ WP 3.1.3? meta_keyแน่นอนผมต้องการที่จะหลีกเลี่ยงการใช้เลิกใช้ add_filter( 'pre_get_posts', 'my_get_posts' ); function my_get_posts( $query ) { if ( is_home() ) { $query->set( 'post_type', 'event' ); $query->set( 'meta_key', '_start_date' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); $query->set( 'meta_query', array( array( 'key' => …

2
เคียวรี WP REST API v2 ด้วยหลายเมตาคีย์
ใช้ v2 ของ REST API ฉันต้องการสอบถามบางโพสต์ด้วยเมตาคีย์หลายอัน ด้วย v1 ฉันสามารถจัดรูปแบบ URL ที่ชอบ&filter[meta_value][month]=12&[meta_value][year]=2015และใช้งานได้ (หลังจากเปิดเผยค่าเมตาไปยัง API) ตอนนี้ด้วย v2 ฉันสามารถใช้งานได้โดยใช้วิธีการที่ระบุไว้ในกระทู้ GitHub นี้: https://github.com/WP-API/WP-API/issues/1599#issuecomment-161166805 โดยทั่วไปให้เพิ่มเขตข้อมูลเมตาโดยใช้rest_query_varsตัวกรองดังนี้ add_filter( 'rest_query_vars', 'flux_allow_meta_query' ); function flux_allow_meta_query( $valid_vars ) { $valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) ); return $valid_vars; } กับที่ผมสามารถกรองตามอย่างใดอย่างหนึ่งที่สำคัญเมตาโดยใช้ URL wp-json/wp/v2/posts?filter[meta_key]=test&filter[meta_value]=onเช่น อย่างไรก็ตามดูเหมือนว่าวิธีเดียวในการกรองเมตาคีย์หลายรายการคือการเขียนตัวกรองแบบกำหนดเอง ใครช่วยชี้ให้ฉันในทิศทางที่ถูกต้องของการทำเช่นนั้น?

1
การผสมประเภทโพสต์ปกติและกำหนดเอง (กับ meta_query) ในหน้าแรก
ไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไร ฉันพยายามผสมโพสต์มาตรฐานและโพสต์ที่กำหนดเองในหน้าแรกของเว็บไซต์ แต่ฉันต้องการแสดงโพสต์ที่กำหนดเองหากตั้งค่าเมตา การแสดงโพสต์นั้นใช้งานได้ดี'post_type' => array('game', 'post')แต่เมื่อฉันเพิ่มใน meta_query โพสต์ปกติจะไม่แสดงอีกต่อไป (ซึ่งสมเหตุสมผลแล้วเนื่องจากไม่เป็นไปตามเงื่อนไขของ meta_query) ดังนั้นฉันจะ จำกัด meta_query เฉพาะประเภทโพสต์ที่กำหนดเองเพื่อให้โพสต์ปกติจะยังคงรวมอยู่ได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.