get_terms - chỉ cấp cao nhất


13

Tôi đang cố gắng để chỉ có được thuật ngữ cấp cao nhất:

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

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

Nhưng truy vấn này cũng trả về tất cả các giao thức con, tôi đã thử mọi cách nhưng nó cũng luôn nhận được các thuật ngữ con.

Tôi đang thử từ 5 giờ trước và không thể tìm thấy lỗi trong mã của mình, đây có phải là lỗi WP hay có gì đó không đúng trong mã của tôi?

Cảm ơn đã giúp đỡ.


Tôi nghĩ bạn chỉ có nghĩa là các thuật ngữ cấp cao nhất từ ​​phân loại học của bạnquestion_category
Pieter Goosen

Vâng, ý tôi là
Aryan

Câu trả lời:


21

Mã của bạn là chính xác, cũng gần như chính xác. Về cái nhìn đầu tiên, tôi phải thú nhận, tôi cũng nhớ nó.

Bạn có hai lỗi cú pháp trong mã của bạn. Nếu bạn nhìn kỹ, 'parent ''parent'không giống nhau. Bạn không nên để khoảng trống giữa dấu ngoặc đơn ( ') và đối số.

Ngoài ra, bạn không cần thêm một ,đối số sau cuộc tranh luận cuối cùng của bạn.

Điều này sẽ làm việc

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

CHỈNH SỬA 15-06-2016

Kể từ WordPress 4.5, cú pháp đã thay đổi get_terms(). Các taxonomythông số hiện được đưa vào các mảng hoặc args, vì vậy việc sử dụng mới sẽ trông như thế này

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

2
Chỉ cần một lưu ý: bạn không cần thêm ,sau đối số mảng cuối cùng, TUY NHIÊN, đó là một cách thực hành tốt để làm như vậy ;)
jave.web

@ jave.web Cảm ơn vì điều đó, tôi biết rằng, tôi không luôn luôn làm điều đó. ;-)
Pieter Goosen

@ jave.web Thực sự không tốt khi thêm một ,đối số mảng cuối cùng, vì điều này sẽ phá vỡ các ngôn ngữ khác không có khả năng chịu đựng các dấu phẩy thừa. Ví dụ. JSON sẽ bị hỏng nếu bạn làm điều này.
Mikepote

2
@Mikepote thực sự không đúng, đó là một thực tiễn tốt và nếu bạn đang cố gắng chuyển mã từ ngôn ngữ này sang ngôn ngữ khác, bạn nên sử dụng chuyển đổi / ter thích hợp. Nó giống như nói rằng bạn không thể có các sáng tạo đối tượng và / hoặc các biến làm đối số, bởi vì nếu bạn sao chép / dán nó sẽ phá vỡ JSON ... Đó là một thực tiễn tốt ngay cả trong JavaScript, do đó hỗ trợ đã được thêm vào sau này ở mọi nơi. Sao chép / dán bên trong cùng một ngôn ngữ và dự án có nhiều khả năng hơn và thêm dấu phẩy nếu có thể ngăn chặn sự chậm chạp thông thường - đó không chỉ từ kinh nghiệm của tôi, mà còn từ kinh nghiệm của người khác.
jave.web

@Mikepote Để giải quyết những gì jave.web đang nói, nó không chỉ thực hành tốt mà còn được đề xuất cụ thể trong Tiêu chuẩn mã hóa PHP của WordPress, lý tưởng nhất là tất cả các mã dành riêng cho WordPress nên tuân theo: make.wordpress.org/core/handbook/best- thực hành / Tập
Sarah Lewis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.