J'essaie d'afficher les pages enfants d'une page post_type
personnalisée. J'ai trouvé un shortcode qui convient parfaitement aux "pages" post_type
de WordPress standard, mais ne fonctionne pas pour les types de publication personnalisés.
Voici le code de shortcode que j'ai placé dans mon fichier de fonctions de substitution:
add_shortcode( 'my_childpages', 'my_list_child_pages' );
function my_list_child_pages() {
global $post;
if ( is_page() && $post->post_parent )
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
if ( $childpages ) {
$string = '<ul>' . $childpages . '</ul>';
}
return $string;
}
Si je place le shortcode [my_childpages]
sur une "page" post_type
avec enfants, il affiche avec succès dans la liste chaînée toutes les sous-pages. Mais si j'ajoute à un post_type
personnalisé (par exemple, 'essais'), ce n'est pas le cas.
J'ai vu ailleurs que le code ne reconnaît peut-être pas le $post_type
personnalisé et nécessite un argument supplémentaire, mais je ne sais pas comment éditer le code ci-dessus pour le satisfaire. J'ai essayé plusieurs modifications mais j'échoue.
Tout conseil ou suggestion serait grandement apprécié!
La page
elle-même est un type de publication personnalisé; vous pouvez le remarquer lorsque vous ouvrez l'écran de la page de modification. Votre URL sera comme ça:
www.example.com/wp-admin/edit.php?post_type=page
Cela signifie que vous êtes sur un type de poste page
.
En ce qui concerne votre code, la première condition de votre conditionnel détermine si vous êtes sur un type d'article page
ou non. Dans la section else
, vous pouvez également définir le post_type
en tant qu'argument:
$childpages = wp_list_pages( 'post_type=essay&sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
Cependant, vous devez définir la hiérarchie sur true lors de l'enregistrement de votre taxonomie personnalisée:
'hierarchical'=> true,
Jetez un oeil à cette question , qui contient des informations précieuses à ce sujet. La page associée de la référence code peut également être utile.