get_terms - doar termenii de nivel superior

14 aug. 2014, 14:31:02
Vizualizări: 29.1K
Voturi: 21

Încerc să obțin doar termenii de nivel superior:

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

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

Dar această interogare returnează și toți termenii copil, am încercat totul dar mereu obține și termenii copil.

Încerc de 5 ore și nu pot găsi ce este greșit în codul meu, este acesta un bug WordPress sau este ceva greșit în codul meu?

Mulțumesc pentru ajutor.

2
Comentarii

Cred că te referi doar la termenii de nivel superior din taxonomia ta question_category

Pieter Goosen Pieter Goosen
14 aug. 2014 14:39:41

Da, la asta mă refer

Aryan Aryan
14 aug. 2014 14:40:29
Toate răspunsurile la întrebare 1
6
31

Codul tău este corect, sau aproape corect. La prima vedere, trebuie să recunosc, și eu am ratat acest lucru.

Ai două erori de sintaxă în codul tău. Dacă te uiți atent, 'parent ' și 'parent' nu sunt același lucru. Nu ar trebui să lași spații goale între ghilimele simple (') și argumente.

De asemenea, nu este necesar să adaugi o , după ultimul argument.

Acest cod ar trebui să funcționeze:

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

EDITARE 15-06-2016

Începând cu WordPress 4.5, sintaxa pentru get_terms() s-a schimbat. Parametrul taxonomy este acum inclus în array-ul de argumente, așa că noua utilizare va arăta astfel:

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );
14 aug. 2014 14:59:38
Comentarii

Doar o notă: nu este necesar să adaugi , după ultimul argument al array-ului, ÎNSĂ, este o practică bună să o faci ;)

jave.web jave.web
15 iun. 2016 12:02:24

@jave.web Mulțumesc pentru asta, știu, doar că nu fac asta tot timpul. ;-)

Pieter Goosen Pieter Goosen
15 iun. 2016 12:05:16

@jave.web De fapt, nu este o practică bună să adaugi o , după ultimul argument al array-ului, deoarece acest lucru va strica alte limbaje care nu sunt la fel de tolerante cu virgulele redundante. De exemplu, JSON se va strica dacă faci asta.

Mikepote Mikepote
16 apr. 2019 17:20:23

@Mikepote acest lucru nu este de fapt adevărat, este o practică bună și dacă încerci să muți codul dintr-un limbaj în altul, ar trebui să folosești conversia/terminologia corectă. Este ca și cum ai spune că nu poți avea creări de obiecte și/sau variabile ca argumente, pentru că dacă copiezi/lipești, se strică JSON... Este o practică bună chiar și în JavaScript, motiv pentru care suportul a fost adăugat ulterior peste tot. Copierea/lipirea în cadrul aceluiași limbaj și proiect este mult mai probabilă, iar adăugarea virgulei finale, dacă este posibil, previne întârzieri frecvente - acest lucru nu este doar din experiența mea, ci și din experiența altora.

jave.web jave.web
18 apr. 2019 00:26:26

@Mikepote Pentru a adăuga la ceea ce spune jave.web, nu este doar o practică bună, ci este recomandat în mod specific în Standardele de Codare PHP WordPress, pe care, în mod ideal, ar trebui să le urmeze tot codul specific WordPress: https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#indentation

Sarah Lewis Sarah Lewis
3 mai 2019 20:29:10

Recunosc că am greșit.

Mikepote Mikepote
4 mai 2019 00:58:31
Arată celelalte 1 comentarii