get_terms-最上位のみ


13

トップレベルの用語のみを取得しようとしています:

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

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

しかし、このクエリはすべての子用語も返します。私はすべてを試しましたが、常に子用語も取得します。

私は最後の5時間から試していますが、コードの問題を見つけることができません、これはWPのバグですか、コードに何か問題がありますか?

助けてくれてありがとう。


私はあなたがあなたの分類から唯一トップレベルの用語の意味を考えるquestion_category
ピーター・グーセン

はい私はそれを意味
アーリアン

回答:


21

あなたのコードは正しく、ほとんど正しいです。最初に、私は告白しなければなりません、私もそれを逃しました。

コードに2つの構文エラーがあります。よく見ると、'parent ''parent'同じではありません。単一引用符(')と引数の間には空白を入れないでください。

また、,最後の引数の後にaを追加する必要はありません。

これは動作するはずです

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

編集15-06-2016

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

@ jave.web 最後の配列引数の後にaを追加することは実際に良い習慣ではありません。,これは冗長なコンマに寛容でない他の言語を破壊するからです。例えば。これを行うとJSONは壊れます。
マイクポテ

2
@Mikepoteは実際には正しくありません。良い習慣であり、ある言語から別の言語にコードを移動しようとしている場合は、適切な変換/ terを使用する必要があります。オブジェクトの作成や変数を引数として使用できないと言っているようなものです。コピー/貼り付けを行うとJSONが壊れるからです。JavaScriptでも良い習慣であるため、後でどこでもサポートが追加されました。同じ言語とプロジェクト内でのコピー/貼り付けの方がはるかに可能性が高く、可能であれば末尾のコンマを追加すると、一般的なスローダウンを防ぐことができます。
jave.web

何jave.webへの@Mikepoteにタックは、それが良い練習が、特に理想的にすべてのWordPress固有のコードが従うべき基準、コーディングWordPressのPHPにはお勧めできませんだけだ、と言っています:make.wordpress.org/core/handbook/best-プラクティス/ ...
サラ・ルイス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.