get_terms-최상위 레벨 만


13

최상위 용어 만 얻으려고합니다.

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

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

그러나이 쿼리는 모든 자식 용어도 반환하지만 모든 것을 시도했지만 항상 자식 용어도 얻습니다.

지난 5 시간 이후 노력하고 있는데 내 코드에서 무엇이 잘못 되었습니까?이 버그는 WP 버그입니까, 아니면 코드에 문제가 있습니까?

도움을 주셔서 감사합니다.


나는 당신이 당신의 분류에서 유일한 최고 수준의 조건을 의미 생각question_category
피터 구센

네, 그러니까
Aryan

답변:


21

코드가 정확하고 거의 정확합니다. 처음에, 나는 고백해야합니다.

코드에 두 가지 구문 오류가 있습니다. 당신이 자세히 보면, 'parent ''parent'동일하지 않습니다. 작은 따옴표 ( ')와 인수 사이에 공백을 두지 마십시오 .

또한 ,마지막 인수 뒤에 마침표를 추가 할 필요가 없습니다 .

이 작동합니다

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

2016 년 6 월 15 일 수정

WordPress 4.5에서와 같이 구문이 변경되었습니다 get_terms(). taxonomy새로운 사용은 다음과 같이 있도록 매개 변수는 이제 배열 또는 인수에 포함되어 있습니다

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

2
참고 사항 : 마지막 배열 인수 뒤에 추가 할 필요 는 없지만 그렇게하는 것이 좋습니다 .),
jave.web

@ jave.web 감사합니다. 나는 항상 그렇게하지는 않습니다. ;-)
Pieter Goosen 2018 년

@ jave.web 실제로 마지막 배열 인수 뒤에 추가하는 것은 좋은 습관이 아닙니다, . 중복 쉼표에 관대하지 않은 다른 언어는 깨지기 때문입니다. 예 : 이 작업을 수행하면 JSON이 중단됩니다.
Mikepote

2
실제로 사실이 아닌 @Mikepote는 좋은 습관이며 코드를 한 언어에서 다른 언어로 이동하려는 경우 적절한 변환 / 종료를 사용해야합니다. 객체 생성 및 / 또는 변수를 인수로 가질 수 없다는 말과 같습니다. 복사 / 붙여 넣기를하면 JSON이 깨지기 때문입니다. JavaScript에서도 좋은 방법이므로 나중에 모든 곳에 지원이 추가되었습니다. 동일한 언어와 프로젝트 내에서 복사 / 붙여 넣기가 훨씬 더 가능하며 가능한 경우 후행 쉼표를 추가하면 일반적인 속도 저하를 방지 할 수 있습니다. 이는 저의 경험뿐만 아니라 다른 사람들의 경험에서도 발생합니다.
jave.web

@Mikepote jave.web의 말을 고수하기 위해서는 좋은 연습뿐만 아니라 WordPress PHP 코딩 표준에서 특히 권장됩니다. 이상적으로 모든 WordPress 관련 코드는 다음과 같습니다. make.wordpress.org/core/handbook/best- 관습 /…
Sarah Lewis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.