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

"wp-query" หมายถึงกำกวมอย่างใดอย่างหนึ่ง 1) WP_Query เป็นคลาสพื้นฐานของ WordPress ซึ่งช่วยให้ผู้ใช้สามารถสืบค้นฐานข้อมูลโพสต์โดยใช้เกณฑ์หลายเกณฑ์ 2) $ wp_query เป็นตัวแปรทั่วโลกที่เก็บวัตถุแบบสอบถามหลักที่จัดทำโดย WordPress ตามคำขอที่กำหนด

3
ฉันควรใช้ Pre Get กระทู้หรือ WP_Query
ฉันมีคำถามต่อไปนี้ซึ่งฉันโทรหาในเทมเพลต taxonomy.php ผ่านทาง query_brands_geo('dealers', 'publish', '1', $taxtype, $geo, $brands); ฟังก์ชั่นนี้ทำงานได้อย่างสมบูรณ์แบบ อย่างไรก็ตามหลังจากอ่าน codex สำหรับการโพสต์แบบสอบถามมันพูดถึง pre_get_posts เป็นวิธีที่ต้องการในการเปลี่ยนแบบสอบถามเริ่มต้น pre_get_posts จะมีประสิทธิภาพมากกว่านี้จากนั้น wp_query ของฉันจะทำงานด้านล่างหรือไม่ ถ้าเป็นเช่นนั้นฉันจะสร้าง pre_get_posts และส่งตัวแปรและข้อความค้นหาของฉันด้านล่างได้อย่างไร function my_custom_query($posttype, $poststatus, $paidvalue, $taxtype, $geo, $brands) { global $wp_query; $wp_query = new WP_Query(); $args = array( 'post_type' => $posttype, 'post_status' => array($poststatus), 'orderby' => 'rand', 'posts_per_page' => …

4
ยกเว้นโพสต์ ID จาก wp_query
ฉันจะยกเว้นหนึ่งโพสต์เฉพาะจากแบบสอบถาม WP_Query ได้อย่างไร (ตัวอย่างเช่นแสดงโพสต์ทั้งหมดนอกเหนือจากโพสต์ที่มี ID 278) ฉันลองอาร์กิวเมนต์ post__not_in แล้ว แต่เพิ่งลบโพสต์ทั้งหมด .. ความช่วยเหลือใด ๆ จะดีมาก นี่คือแบบสอบถามปัจจุบันของฉัน <?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(array( 'post_type' => 'case-study', 'paged' => $paged, )); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> ขอบคุณ
28 wp-query  exclude 

5
จะจัดเก็บและรับตัวแปรในเซสชัน WP ได้อย่างไร
ฉันมีแบบฟอร์มที่มีช่องทำเครื่องหมายและกล่องเลือกบางช่องและมันแสดงสิ่งที่ผู้ใช้ต้องการผ่านการโทร ajax ปัญหาคือเมื่อผู้ใช้คลิกที่รายการและหน้ารายละเอียดจะปรากฏขึ้นแล้วตัดสินใจกลับไปที่หน้าก่อนหน้าเขาต้องคลิกและเลือกตัวเลือกก่อนหน้าของเขาอีกครั้ง ฉันต้องการให้ WP เก็บตัวเลือกทั้งหมดในเซสชันเมื่อมีการคลิกปุ่มไปที่หน้ารายละเอียดและบันทึกข้อมูลจริงในเซสชันจากนั้นเมื่อเขาเข้าชมหน้าอีกครั้งค่าจะถูกกำหนดในเซสชันและตั้งค่าหากมี พบ ที่สามารถทำได้ใน WP? ถ้าใช่เป็นอย่างไร เรามาสรุปและบอกว่าเรามีอะไรแบบนี้ในรูปแบบของเรา: <input class="car_color" type="checkbox" name="car_color" value="1" /> <input class="car_color" type="checkbox" name="car_color" value="2" /> <input class="car_color" type="checkbox" name="car_color" value="8" /> <input class="car_color" type="checkbox" name="car_color" value="4" /> <input class="car_color" type="checkbox" name="car_color" value="6" /> ฉันไม่ใช้ปุ่มส่งในแบบฟอร์มของฉันจัดการผ่าน AJAX เมื่อมีการเปลี่ยนแปลงอินพุต และในผลลัพธ์ของฉันผ่าน ajax ฉันมีลิงค์ไปยังหน้ารายละเอียด: <a class="detail-info-link" href="<?php …
28 wp-query  session 

3
รับรหัสโพสต์จาก WP_Query
มีวิธีที่ฉันสามารถดึงอาเรย์ของรหัสโพสต์ที่สอบถามจากสิ่งต่อไปนี้: $latest = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => 3 )); if ( $latest -> have_posts() ) : while ( $latest -> have_posts() ) : $latest -> the_post(); get_template_part( 'templates/content', 'post' ); endwhile; endif; wp_reset_postdata(); ติดตาม: ฉันใช้wp_list_pluckเพื่อดึงอาเรย์ของรหัสโพสต์: $post_ids = wp_list_pluck( $latest->posts, 'ID' ); จากนั้นแปลงอาร์เรย์เป็นสตริงโดยใช้ฟังก์ชัน implode: $post_ids_string = …

4
วิธีการพิมพ์ sql excuted ทันทีหลังจากการดำเนินการ
ฉันกำลังค้นหาวิธีที่ฉันสามารถพิมพ์แบบสอบถาม sql ดำเนินการหลัง: $wpdb->query( $wpdb->prepare("INSERT INTO tbl_watchprosite SET keywords=%s,url_to_post=%s,description=%s, date_captured=%s,crawl_id=%d, image_main=%s,images=%s,brand=%s, series=%s,model=%s,condition=%s,box=%s, papers=%s,year=%s,case_size=%s,status=%s,listed=%s, asking_price=%s,retail_price=%s,payment_info=%s,forum_id=%d", $this->getForumSettings()->search_meta,$element->href,$post_meta['description'],current_time('mysql'),$cid,$post_meta['image_main'],$images,$post_meta[0],$post_meta[1],$post_meta[2],$post_meta[3],$post_meta[4],$post_meta[5],$post_meta[6],$post_meta[7],$status,$post_meta[9],$post_meta[10],$post_meta[11],$this->getForumSettings()->ID) ); นี่จะดีมากถ้าฉันสามารถดูว่ามีค่าอะไรบ้างในแบบสอบถาม ขอบคุณ
26 wp-query  wpdb 

4
จำเป็นต้องใช้ wp_reset_query () ในการโทร WP_Query หรือไม่?
ฉันใช้รหัสต่อไปนี้เพื่อดึงโพสต์: <?php $featuredPosts = new WP_Query(); $featuredPosts->query('showposts=5&cat=3'); while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); ?> <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1> <div class="meta"> By <?php the_author() ?> </div> <div class="storycontent"> <?php the_excerpt(); ?> </div> <?php endwhile; ?> ฉันจำเป็นต้องใช้wp_reset_query()หรือไม่ ถ้าฉันทำฉันควรวางไว้ที่ไหน
26 wp-query 

4
วิธี จำกัด จำนวนโพสต์ที่ WP_Query ได้รับ
ฉันได้ทำการค้นคว้าเกี่ยวกับ Google และ WPSE และสิ่งเดียวที่ฉันเห็นซ้ำ ๆ ก็คือการใช้showpostsนั่นคือเลิกใช้แล้ว ฉันคุ้นเคยกับWP_Queryและฉันคิดว่าถ้าฉันตั้งไว้posts_per_pageที่ขีด จำกัด ของฉัน (เช่น 5) และnopagingเพื่อtrueมันจะกลายเป็นบางอย่างเช่น " ตกลงฉันจะให้คุณโพสต์เพียง 5 " แต่มันไม่ได้ผล ฉันจะทำสิ่งนี้ได้อย่างไร
25 posts  wp-query  query 

2
ใช้ pre_get_posts กับ WP_Query
ผมอ่านสตีเฟ่นแฮร์ริสคำตอบที่ดี 'เพื่อคำถามนี้เกี่ยวกับการใช้WP_query(), และquery_posts()pre_get_posts เขาบอกว่า"pre_get_posts เป็นตัวกรองสำหรับการแก้ไขแบบสอบถามใด ๆส่วนใหญ่มักจะใช้เพื่อแก้ไขเฉพาะ 'ข้อความค้นหาหลัก' เท่านั้น" มันเป็นไปได้ที่จะใช้pre_get_postsกับตัวกรองเฉพาะแบบสอบถามรองเฉพาะที่สร้างขึ้นด้วยWP_Query? เช่น. $my_secondary_loop = new WP_Query(...); if( $my_secondary_loop->have_posts() ): while( $my_secondary_loop->have_posts() ): $my_secondary_loop->the_post(); //The secondary loop endwhile; endif; wp_reset_postdata(); ความช่วยเหลือใด ๆ ที่ชื่นชมมาก

1
ฉันจะเรียกโพสต์เริ่มต้นต่อมูลค่าหน้าได้อย่างไร จาก settings-> การอ่าน และจำนวนโพสต์ทั้งหมด?
ฉันต้องการดึงค่าเริ่มต้นของโพสต์ต่อหน้า (ค่าที่ตั้งไว้ใน settings-> reading ฉันได้ดูไปเรื่อย ๆ จนถึงตอนนี้ฉันพบวิธีที่จะสืบค้นเท่านั้น ปัญหาคือฉันไม่ต้องการเปลี่ยนสิ่งที่ถูกตั้งค่าฉันแค่ต้องการดึงมันเพื่อจุดประสงค์ในการแบ่งหน้า ฉันคิดว่าจะใช้$something->post_count.(ฉันอาจจะผิด แต่เพราะฉันเข้าใจว่ามันคืนจำนวนโพสต์ที่แสดงในปัจจุบัน) แต่อาจจะผิดในบางกรณี นอกจากนี้ฉันจะรับจำนวนโพสต์ทั้งหมดได้อย่างไร

3
ฉันสามารถบังคับให้ WP_Query ส่งคืนผลลัพธ์ไม่ได้หรือไม่
ฉันกำลังทำงานกับเว็บไซต์ที่มีคุณสมบัติการค้นหาที่ช่วยให้ผู้ใช้สามารถค้นหาเมตาโพสต์ได้มากมาย มีรูปแบบการค้นหาเฉพาะที่ฉันต้องการบังคับให้ส่งคืนผลลัพธ์ไม่ได้ WP_Query ในทางเทคนิคจะค้นหาผลลัพธ์ในฐานข้อมูล แต่ฉันต้องการแทนที่อย่างใดเพื่อบังคับให้ส่งคืนผลลัพธ์ที่ไม่ก่อให้เกิดการif( $example->have_posts() )ล้มเหลว มีพารามิเตอร์บางประเภทที่ฉันสามารถส่งไปยัง WP_Query เช่น'force_no_results' => trueนั้นจะบังคับให้ส่งคืนผลลัพธ์หรือไม่?
23 wp-query  loop  search 

4
wp_query ส่งคืนเมตาโพสต์ในคำขอเดียวได้หรือไม่
ฉันต้องการสร้าง wp_query ที่จะส่งคืนเมตาโพสต์ภายในpostsอาเรย์ $args = array ( 'post_type' => 'page', 'meta_key' => 'someMetaKeyName', ); // The Query $query = new WP_Query( $args ); ส่งคืนสิ่งที่ต้องการ: ในขณะที่คุณเห็นโพสต์ไม่มีข้อมูลเมตาใด ๆ เป็นไปได้หรือไม่ที่จะรวมข้อมูลเมตาในอาเรย์ที่ส่งคืนด้วย PS ฉันไม่ต้องการ wp_queries เพิ่มเติมเนื่องจากเหตุผลด้านประสิทธิภาพ

6
ฉันจะแยก taxonomy ที่กำหนดเองออกจากลูปการโพสต์ได้อย่างไร
มีวิธีที่ง่ายหรือไม่ในการแยกโพสต์ทั้งหมดออกจาก taxonomy ที่กำหนดเองในลูปหรือไม่? ฉันดูสูงและต่ำและดูเหมือนว่า SE, SO หรือ Google จะไม่มีคำตอบที่ตรง ฉันรู้ว่ามันสามารถทำได้ผ่านแบบสอบถาม WPDB แต่ดูเหมือนว่าเชือกขนาดใหญ่ที่จะข้ามไปสำหรับสิ่งที่ควรจะค่อนข้างง่าย

5
แบบสอบถามเพื่อเรียงลำดับรายการตามเมตาคีย์ก่อน (ถ้ามี) และแสดงโพสต์ที่เหลือโดยไม่ต้องคีย์เมตาเรียงตามชื่อ
ฉันกำลังทำงานกับเทมเพลตหน้าคำศัพท์ taxonomy ที่กำหนดเองซึ่งเราต้องการให้รายการที่เชื่อมโยงกับคำที่เรียงตามวันที่เผยแพร่ (ฟิลด์วันที่กำหนดเอง) - และหากมีหลายรายการในวันเดียวกัน (จัดรูปแบบเช่น YYYY-MM- DD) เพื่อจัดเรียงรายการเหล่านั้นตามชื่อและในที่สุดก็เรียงลำดับตามชื่อเรื่องหากฟิลด์ที่กำหนดเองยังไม่ได้กรอก (รายการเก่า) ดังนั้นฉันจึงลองใช้วิธีที่แตกต่างกันหลายร้อยวิธีด้วย WP_query และมันส่งคืนผลลัพธ์ส่วนใหญ่ตามที่ฉันต้องการ - แต่ในกรณีนี้มันจะคืนค่ารายการที่มี meta_key ของ publication_date เท่านั้น รายการอื่น ๆ ทั้งหมดจะถูกละเว้นและไม่แสดง ฉันลองใช้ meta_query โดยใช้ความสัมพันธ์ของ "หรือ" และเปรียบเทียบสิ่งพิมพ์_dateว่าเป็น EXISTS และไม่ใช่ EXISTS แต่ได้ผลลัพธ์ 0 รายการกลับมาให้ฉัน นอกจากนี้ไซต์ยังคงทำงาน 3.5.2 และพวกเขาไม่ต้องการอัพเกรด นี่คือข้อความค้นหาล่าสุดของฉันที่ทำให้ฉันได้รับโพสต์ที่มีฟิลด์ที่กำหนดเองสิ่งพิมพ์_dateตามลำดับที่ถูกต้อง: $term = get_queried_object(); // find the term of the taxonomy page we …

1
เราควรไว้วางใจโพสต์กลม
@toscho แสดงความคิดเห็นต่อคำตอบนี้ซึ่งทำให้ฉันคิดอีกครั้ง วิธีการไว้วางใจมากที่สุดเราควรจะมีในขอบเขตทั่วโลกโดยเฉพาะเกี่ยวกับการโพสต์ Globals เช่น$post? แล้วอะไรล่ะ ตัวแปรทั่วโลกสามารถเขียนทับได้จากทุกคนก่อนที่เช็คของคุณจะทำงาน นั่นคือจุดของตัวแปรทั่วโลก: การเข้าถึงทั่วโลก $postเช่นเป็นหนึ่งใน globals ที่มีการปรับเปลี่ยนส่วนใหญ่ทั้งในรูปแบบของตัวเองหรือโดยปลั๊กอิน แต่มันยังเป็นที่นิยมใช้กันทั่วโลกในแอปพลิเคชั่นอื่น ๆ ภายในเทมเพลตที่กำหนดตัวอย่างเช่นการตั้งค่าโพสต์ที่เกี่ยวข้อง จากการตอบ (และแสดงความคิดเห็นใน) โพสต์หลายรายการที่มีปัญหาเฉพาะที่เกิดจากการใช้แบบสอบถามที่กำหนดเองมันชัดเจนว่าปัญหาส่วนใหญ่เกิดขึ้นเนื่องจากแบบสอบถามที่กำหนดเองไม่ได้ถูกตั้งค่าใหม่ จากนี้เห็นได้ชัดว่า$postไม่น่าเชื่อถือ โค้ดที่เขียนไม่ดีใด ๆ ที่ใช้ประโยชน์จากการสืบค้นที่กำหนดเองสามารถเปลี่ยน$postทั่วโลกซึ่งจะทำลายบางสิ่งบางอย่าง (เช่นโพสต์ที่เกี่ยวข้อง) มีนักพัฒนา WordPress เพียงไม่กี่คนเท่านั้นที่มีความรู้เพียงพอในการทำงานด้านในของคอร์และรู้ว่าต้องหลีกเลี่ยงอะไรบ้าง จำนวนผู้ใช้งานที่มากขึ้นไม่รู้ว่า WordPress แกนทำงานอย่างไร พวกเขาเพียงแค่ดาวน์โหลดธีมและติดตั้งปลั๊กอินเพื่อทำสิ่งที่จำเป็นหรือเพียงแค่คัดลอกโค้ดจากบทช่วยสอน สมมติว่าพวกเขาติดตั้งปลั๊กอินที่เขียนไม่ดีซึ่งแบ่งโพสต์ที่เกี่ยวข้องไว้ในโพสต์เดียวพวกเขาจะรู้ได้อย่างไรว่าเกิดอะไรขึ้น พวกเขาจะสามารถเรียงลำดับตัวเองออกมาหรือพวกเขาจะเป็นร้อยคนที่เขียนอีเมลถึงผู้แต่งธีมเกี่ยวกับปัญหานี้หรือโพสต์คำถามบนไซต์นี้หรือไม่? คำถามของฉัน:คุณจะสามารถป้องกันปัญหาดังกล่าวที่เกิดจากรหัสนำเข้าอื่น ๆ ได้อย่างไรเมื่อสิ่งที่ทั่วโลกต้องการ$postนั้นไม่น่าเชื่อถือ? เราควรจะใช้สิ่งที่เป็นสากล$postหรือไม่? ทางเลือกคืออะไร? เพียงเพื่อแบ่งปันความคิดของฉันที่นี่ก่อนที่ผมจะสรุป: ผมคิดว่า (และที่เห็นในรูปแบบบางและปลั๊กอินด้วย) ทั้งการใช้wp_reset_postdata()หรือwp_reset_query()ก่อนที่จะทำให้การใช้เพื่อให้แน่ใจว่าโลกจะถูกรีเซ็ตของแบบสอบถามหลัก$post $postแต่ทำไมฉันควรขยายโค้ดของฉันในชุดรูปแบบของฉันเพราะคนอื่นไม่ได้รหัสปลั๊กอินของเขาอย่างถูกต้อง? และหากมีคนรีเซ็ตการสืบค้นที่กำหนดเองอย่างถูกต้องการดำเนินการนี้จะทำงานเป็นครั้งที่สองโดยไม่จำเป็นซึ่งไม่ดี วิธีที่สองผมคิดว่าการที่จะทำให้การใช้งานของแล้วใช้วิธีการบางอย่างเช่น$wp_query$wp_query->post ความคิดใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชม

2
การรีเซ็ตข้อมูลโพสต์เป็นลูปก่อนหน้าในลูปซ้อนกัน
ฉันพยายามใช้ลูปซ้อนกับโพสต์ไปยังปลั๊กอินโพสต์ ลูปทั้งสองทำงาน แต่ปัญหาเกิดขึ้นหลังจากวนซ้ำที่สอง ($ issue) ฉันต้องการเข้าถึงลูปการประกาศ $ อีกครั้ง แต่ข้อมูลยังคงเป็นข้อมูล $ Issue wp_reset_query() จะรีเซ็ตกลับไปที่ลูปหลักใน single.php ซึ่งฉันไม่ต้องการ ฉันสามารถใช้get_posts()แทน WP_Query ใหม่ get_template_part()แต่ฉันต้องการที่จะสามารถที่จะใช้ ฉันจะรีเซ็ตข้อมูลของฉันกลับไปที่ลูปสิ่งพิมพ์เพื่อให้ 'ชื่อสิ่งพิมพ์' ที่สองส่งคืนสิ่งพิมพ์ไม่ใช่ปัญหาชื่อได้อย่างไร นี่คือรหัสของฉันภายใน single.php: $publication = new WP_Query( array( 'connected_type' => 'publication_to_post', 'connected_items' => $post->ID, 'fields' => 'ids', 'posts_per_page' => 1, ) ); if ( $publication->have_posts() ) { while ( …
21 wp-query  loop  reset 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.