Question très simple: Voici mon code get_categories()
:
<?php $args = array(
'show_option_all' => '',
'show_option_none' => '',
'orderby' => 'ID',
'order' => 'ASC',
'show_count' => 0,
'hide_empty' => 0,
'exclude' => '1',
'hierarchical' => 0,
'depth' => 1,
'number' => 12
);
?>
<?php $categories = get_categories( $args ); ?>
<div class="middle-left">
<ul>
<?php for( $i=0; $i<4; $i++ ) {
echo "<li>" . $categories[$i]->{'name'} . "</li>";
} ?>
</ul>
</div>
<div class="middle-middle">
<ul>
<?php for( $i=4; $i<8; $i++ ) {
echo "<li>" . $categories[$i]->{'name'} . "</li>";
} ?>
</ul>
</div>
<div class="middle-right">
<ul>
<?php for( $i=8; $i<12; $i++ ) {
echo "<li>" . $categories[$i]->{'name'} . "</li>";
} ?>
</ul>
</div>
Après une longue recherche, j'ai compris comment entrer dans l'objet stdClass sans boucle foreach et je souhaite procéder de cette façon. Mais je ne veux que les catégories de premier niveau, pas de sous-chats.
Comment puis-je modifier l'argument ici?
Utilisez get_terms
avec un argument parent
. De la page du Codex pour cette fonction, soulignez le mien:
parent (entier) Obtenir les enfants directs de ce terme (uniquement les termes dont le parent explicite est cette valeur). Si 0 est passé, seuls les termes de premier niveau sont renvoyés. Default est une chaîne vide.
Non testé, mais cela devrait le faire.
$categories = get_terms(
'category',
array('parent' => 0)
);
Bien sûr, vous devez ajouter tous les autres arguments dont vous avez besoin.
mettre parent
à 0
$args = array(
'parent' => 0,
'hide_empty' => 0
);