Je regarde un didacticiel WordPress sur Youtube sur get_pages () et "child_of":
(de 17'28 "à 18'35") https://www.youtube.com/watch?v=GHTZn3atTcM
Pour vérifier avec une page a enfant (s) ou non, il a suggéré d'utiliser get_pages () avec "child_of" pour le vérifier. J'ai donc créé la structure de catégorie suivante:
About Us
- Sub about us // child of about us
Contact Us // with no child(ren)
Il y a 1 poste pour chaque catégorie.
Et puis je mets ce qui suit dans le single.php pour vérifier:
$array = get_pages('child_of=' . $post->ID);
echo count($array);
Supposons que "About Us" devrait retourner 1 car il a un enfant.
Tandis que pour "Sub about about us" et "Contact Us", le résultat devrait être 0, car les deux enfants n’ont pas d’enfant.
Mais à la fin, tous retournent 0, puis-je savoir ce que je fais mal?
Est-ce que je comprends mal comment utiliser get_pages () & "child_of"?
Merci beaucoup!
Vous l'utilisez au mauvais endroit. Vous pouvez utiliser la même fonction dans page.php et si vous souhaitez l'utiliser dans single.php, vous devez alors passer à pageId statique en tant que paramètres.
À l’heure actuelle, vous transmettez $post->ID
qui renverra l’identifiant post de l’article en cours et Articles n’ayant aucune relation avec les pages.
$defaults = array(
'depth' => 0,
'show_date' => '',
'date_format' => get_option( 'date_format' ),
'child_of' => 0,
'exclude' => '',
'title_li' => __( 'Pages' ),
'echo' => 1,
'authors' => '',
'sort_column' => 'menu_order, post_title',
'link_before' => '',
'link_after' => '',
'item_spacing' => 'preserve',
'walker' => '',
);
$r = wp_parse_args( $args, $defaults );
Le code ci-dessus renverra toutes les pages. Maintenant, si vous voulez avoir des enfants à propos de nous, passez PageID à propos de nous dans le paramètre 'child_of' => 0
. Il retournera seul enfant de à propos de nous.
Une autre chose, vous pouvez obtenir des pages enfants de la page en cours en utilisant la fonction suivante.
$mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc' ) );
Ici vous devez écrire ce code dans page.php ou n’importe quel modèle de page, il retournera les pages enfants de la page actuelle.
Faites-moi savoir si vous trouvez un problème.