get_terms - solo di livello superiore


13

Sto cercando di ottenere solo termini di massimo livello:

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

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

Ma questa query restituisce anche tutti i childterm, ho provato di tutto ma ottiene sempre anche termini child.

Sto provando dalle ultime 5 ore e non riesco a trovare cosa c'è di sbagliato nel mio codice, si tratta di un bug WP o c'è qualcosa di sbagliato nel mio codice?

Grazie dell'aiuto.


Penso che intendi solo termini di alto livello della tua tassonomiaquestion_category
Pieter Goosen,

Sì, voglio dire che
Aryan,

Risposte:


21

Il tuo codice è corretto, quasi quasi corretto. A prima vista, devo confessare, anche a me è mancato.

Hai due errori di sintassi nel tuo codice. Se guardi da vicino, 'parent 'e 'parent'non è lo stesso. Non lasciare spazi vuoti tra virgolette singole ( ') e argomenti.

Inoltre, non è necessario aggiungere un ,dopo il tuo ultimo argomento.

Questo dovrebbe funzionare

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

MODIFICA 15-06-2016

A partire da WordPress 4.5, la sintassi è cambiata per get_terms(). Il taxonomyparametro è ora incluso nell'array o negli arg, quindi il nuovo uso sarà simile a questo

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

2
Solo una nota: non è necessario aggiungere ,dopo l'ultimo argomento dell'array, TUTTAVIA, è una buona pratica farlo ;)
jave.web

@ jave.web Grazie per quello, lo so, non lo faccio sempre. ;-)
Pieter Goosen il

@ jave.web In realtà non è buona norma aggiungere un ,dopo l'ultimo argomento dell'array, poiché questo romperà altre lingue che non sono tolleranti alle virgole ridondanti. Per esempio. JSON si romperà se lo fai.
Mikepote,

2
@Mikepote che in realtà non è vero, è una buona pratica e se stai provando a spostare il codice da una lingua all'altra, dovresti usare la conversione / ter corretta. È come dire che non si possono avere creazioni di oggetti e / o variabili come argomenti, perché se si copia / incolla si rompe JSON ... È buona pratica anche in JavaScript, quindi il supporto è stato aggiunto in seguito ovunque. Copia / incolla nella stessa lingua e progetto è molto più probabile e l'aggiunta della virgola finale, se possibile, impedisce i rallentatori comuni, non solo dalla mia esperienza, ma anche dall'esperienza di altri.
jave.web,

@Mikepote Per approfondire ciò che dice jave.web, non è solo una buona pratica, ma specificamente raccomandato negli standard di codifica PHP di WordPress, che idealmente dovrebbe seguire tutto il codice specifico di WordPress: make.wordpress.org/core/handbook/best- pratiche / ...
Sarah Lewis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.