En utilisant cette partie de code, vous pouvez afficher du contenu, que ce soit une page enfant ou non:
<?php
global $post;
if ( is_page() && $post->post_parent ) : ?>
This is a child-page.
<?php else : ?>
This is a parent-page.
<?php endif; ?>
Mais j'aimerais ajouter une déclaration supplémentaire, de sorte que je puisse avoir un contenu différent s'il s'agit d'une page parent qui a un enfant ou d'une page parent qui n'en a pas. Est-ce que quelque chose comme ceci ci-dessous fonctionnerait? Si oui, que serait "XXX"?
<?php
global $post;
if ( is_page() && $post->post_parent ) : ?>
This is a child-page.
<?php elseif ( is_page() && XXX ) : ?>
This is a parent-page (with one or more children)
<?php else : ?>
This is a parent page without children.
<?php endif; ?>
Merci d'avance!
J'ai fini par utiliser ce code:
<?php
global $post;
$children = get_pages( array( 'child_of' => $post->ID ) );
if ( is_page() && $post->post_parent ) : ?>
This is a child-page.
<?php elseif ( is_page() && count( $children ) > 0 ) : ?>
This is a parent-page (with one or more children)
<?php else : ?>
This is a parent page without children.
<?php endif; ?>
Vous pouvez également créer votre propre balise conditionnelle. Dans functions.php add:
function my_is_parent() {
global $post;
$children = get_pages('child_of='.$post->ID);
if( count( $children ) > 0 ) {
$parent = true;
}
return $parent;
}
Et dans votre SI, au lieu de XXX, ajoutez: my_is_parent()
Vous pouvez bien sûr le nommer autrement que "my_is_parent" si vous le souhaitez. Pas sûr sur cette partie cependant, mais je suppose que ce n’est pas vraiment la preuve de fonctionnalité d’utiliser "is_parent" s’il est inclus dans le noyau un jour.
vous pouvez y parvenir en utilisant
global $post;
$args = array (
'parent' => $post->ID
);
$children = get_pages( $args );
if ( is_page() && $post->post_parent ) : ?>
This is a child-page.
<?php elseif ( is_page() && count( $children ) > 0 ) : ?>
This is a parent-page (with one or more children)
<?php else : ?>
This is a parent page without children.
<?php endif; ?>
et en utilisant count( $children ) > 0
au lieu de votre XXX