get_terms - ระดับสูงสุดเท่านั้น


13

ฉันกำลังพยายามที่จะได้รับเทอมสูงสุดเท่านั้น:

$cat_args = array(
    'parent '       => 0,
    'number'        => 10,
    'hide_empty'    => false,           
);

$categories = get_terms( 'question_category' , $cat_args); 

แต่เคียวรี่นี้ส่งคืน childterms ทั้งหมดด้วยฉันลองทุกอย่าง แต่จะได้รับเงื่อนไขของเด็กเสมอ

ฉันพยายามตั้งแต่ 5 ชั่วโมงที่ผ่านมาและไม่พบสิ่งผิดปกติในรหัสของฉันนี่คือข้อบกพร่อง WP หรือมีบางอย่างผิดปกติในรหัสของฉัน

ขอบคุณสำหรับการช่วยเหลือ.


ฉันคิดว่าคุณหมายถึงเฉพาะคำศัพท์ระดับสูงสุดจากอนุกรมวิธานของคุณquestion_category
Pieter Goosen

ใช่ฉันหมายความว่า
อารยัน

คำตอบ:


21

รหัสของคุณถูกต้องเกือบถูกต้องแล้ว ในการดูครั้งแรกฉันต้องสารภาพฉันก็พลาดเช่นกัน

คุณมีข้อผิดพลาดทางไวยากรณ์สองข้อในรหัสของคุณ หากมองอย่างใกล้ชิด'parent 'และ'parent'ไม่เหมือนกัน คุณไม่ควรเว้นช่องว่างระหว่างอัญประกาศเดี่ยว ( ') และอาร์กิวเมนต์

นอกจากนี้คุณไม่จำเป็นต้องเพิ่ม,หลังจากอาร์กิวเมนต์สุดท้ายของคุณ

สิ่งนี้น่าจะใช้ได้

$cat_args = array(
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
);

แก้ไข 15-06-2016

ในฐานะที่เป็นจาก WordPress 4.5 get_terms()ไวยากรณ์มีการเปลี่ยนแปลง taxonomyพารามิเตอร์จะรวมอยู่ในขณะนี้ในอาร์เรย์หรือ args เพื่อให้การใช้งานใหม่จะมีลักษณะเช่นนี้

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );

2
เพียงแค่ทราบ: คุณไม่จำเป็นต้องเพิ่ม,หลังจากอาร์กิวเมนต์แถวลำดับสุดท้ายอย่างไรก็ตามมันเป็นวิธีปฏิบัติที่ดีในการทำเช่นนั้น ;)
jave.web

@ jave.web ขอบคุณที่ฉันรู้ว่าฉันไม่ได้ทำอย่างนั้นเสมอ ;-)
Pieter Goosen

@ jave.web ไม่ใช่วิธีที่ดีที่จะเพิ่ม,อาร์กิวเมนต์อาเรย์หลังสุดเนื่องจากจะเป็นการทำลายภาษาอื่นที่ไม่ยอมรับคอมม่าที่ซ้ำซ้อน เช่น. JSON จะพังถ้าคุณทำเช่นนี้
Mikepote

2
@ Mikepote ที่ไม่เป็นความจริงมันเป็นแนวปฏิบัติที่ดีและหากคุณพยายามที่จะย้ายรหัสจากภาษาหนึ่งไปยังอีกภาษาหนึ่งคุณควรใช้การแปลง / เทอร์ที่เหมาะสม มันเหมือนกับว่าคุณไม่สามารถสร้างวัตถุและ / หรือตัวแปรเป็นข้อโต้แย้งได้เพราะถ้าคุณคัดลอก / วางมันจะทำให้ JSON ... เป็นแนวปฏิบัติที่ดีแม้ใน JavaScript ดังนั้นการสนับสนุนจึงถูกเพิ่มในภายหลังทุกที่ คัดลอก / วางในภาษาเดียวกันและโครงการมีความเป็นไปได้มากขึ้นและเพิ่มเครื่องหมายจุลภาคต่อท้ายหากเป็นไปได้ป้องกันไม่ให้เครื่องดาวน์ช้า - ไม่เพียง แต่จากประสบการณ์ของฉัน แต่ยังมาจากประสบการณ์ของผู้อื่น
jave.web

@ Mikepote เพื่อที่จะยึดติดกับสิ่งที่ jave.web พูดมันไม่ได้เป็นเพียงแนวปฏิบัติที่ดีเท่านั้น แต่ยังแนะนำให้ใช้เฉพาะในมาตรฐานการเข้ารหัสของ PHP PHP ซึ่งควรใช้รหัสเฉพาะ WordPress ทั้งหมด: make.wordpress.org/core/handbook/best- แนวทางปฏิบัติ / …
Sarah Lewis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.