get_terms() nu returnează termenii goi chiar dacă hide_empty este false
1 sept. 2014, 14:32:31
Vizualizări: 23.8K
Voturi: 4
Nu reușesc să fac get_terms()
să returneze termenii goi și am încercat în mai multe moduri.
Iată codul:
$terms = get_terms('device',array('hide_empty' => 0));
foreach($terms as $term) {
if($term->parent == 0) {
if($i++ != 0) echo '</optgroup>'; echo '<optgroup label="'.$term->name.'">';
$id = $term->term_id;
$args = array("child_of"=>$id);
$this_term = get_terms('device',$args);
foreach($this_term as $the_term) {
$term_name = str_replace($term->name,'',$the_term->name);
echo '<option value="'.$the_term->term_id.'">'.$the_term->name.'</option>';
}
}
}
Am încercat toate modalitățile posibile:
$terms = get_terms('device',array('hide_empty' => false))
$terms = get_terms('device',array('hide_empty' => 0))
$terms = get_terms('device',array('hide_empty=false'))
$terms = get_terms('device',array('hide_empty=0'))
De asemenea, am încercat ultimele două modalități fără array
. Nimic nu pare să funcționeze. Returnează toți termenii care au postări, dar niciunul gol.

Alex Dumitru
753
Comentarii
Toate răspunsurile la întrebare
2
1
Folosești argumentul hide_empty
pentru $terms
, dar nu și pentru $this_term
în interiorul buclei tale.
De asemenea, cu modul în care generezi selecția, ar fi mult mai eficient să interoghezi doar termenii de nivel superior pentru bucla principală:
$terms = get_terms( 'device', array( 'hide_empty' => false, 'parent' => 0 ) );
Și apoi să elimini condiția if($term->parent == 0) {...
din interiorul buclei tale.

TheDeadMedic
36.6K
1 sept. 2014 15:07:36
Întrebări similare
2
răspunsuri
5
răspunsuri
4
răspunsuri