get_terms - solo termini di primo livello

14 ago 2014, 14:31:02
Visualizzazioni: 29.1K
Voti: 21

Sto cercando di ottenere solo i termini di primo 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 termini figli, ho provato di tutto ma continua a recuperare anche i termini figli.

Ci sto provando da 5 ore e non riesco a capire cosa c'è di sbagliato nel mio codice, è un bug di WordPress o c'è qualcosa di sbagliato nel mio codice?

Grazie per l'aiuto.

2
Commenti

Penso tu intenda solo i termini di primo livello dalla tua tassonomia question_category

Pieter Goosen Pieter Goosen
14 ago 2014 14:39:41

Sì, intendo quello

Aryan Aryan
14 ago 2014 14:40:29
Tutte le risposte alla domanda 1
6
31

Il tuo codice è corretto, o quasi. A prima vista, devo ammettere, anch'io l'ho perso.

Ci sono due errori di sintassi nel tuo codice. Se osservi attentamente, 'parent ' e 'parent' non sono la stessa cosa. Non dovresti lasciare spazi vuoti tra gli apici singoli (') e gli argomenti.

Inoltre, non è necessario aggiungere una , dopo l'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 per get_terms() è cambiata. Il parametro taxonomy è ora incluso nell'array degli argomenti, quindi il nuovo utilizzo sarà così:

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

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

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

@jave.web Grazie per il suggerimento, lo so, semplicemente non lo faccio sempre. ;-)

Pieter Goosen Pieter Goosen
15 giu 2016 12:05:16

@jave.web In realtà non è una buona pratica aggiungere una , dopo l'ultimo argomento dell'array, poiché questo causerà problemi in altri linguaggi che non sono così tolleranti con le virgole ridondanti. Ad esempio, il JSON si interromperà se lo fai.

Mikepote Mikepote
16 apr 2019 17:20:23

@Mikepote in realtà non è vero, è una buona pratica e se stai cercando di spostare codice da un linguaggio a un altro, dovresti usare una conversione/terminologia appropriata. È come dire che non puoi avere creazioni di oggetti e/o variabili come argomenti, perché se copi/incolli si rompe il JSON... È una buona pratica anche in JavaScript, motivo per cui il supporto è stato aggiunto successivamente ovunque. Copiare/incollare all'interno dello stesso linguaggio e progetto è molto più probabile e aggiungere la virgola finale, quando possibile, previene comuni rallentamenti - questo non solo per la mia esperienza, ma anche per l'esperienza di altri.

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

@Mikepote Per aggiungere a quanto dice jave.web, non è solo una buona pratica ma è specificamente raccomandato negli Standard di Codifica PHP di WordPress, che idealmente tutto il codice specifico di WordPress dovrebbe seguire: https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#indentation

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

Mi correggo.

Mikepote Mikepote
4 mag 2019 00:58:31
Mostra i restanti 1 commenti