Supposons que j'ai la structure de page suivante
/about-us (used as a parent holder only)
/about-us/history (real page)
/about-us/team (real page)
/about-us/industry (real page)
Il n'y a pas de contenu dans la page " à propos de nous ", mais c'est nécessaire pour deux raisons
Mais l’un des problèmes est que lorsque l’utilisateur tape "/about-us ", il entrera dans une page vierge sans contenu.
Donc, devrais-je transférer automatiquement l'utilisateur à l'url dire "/à propos de nous/historique " par défaut?
Ou est-ce la manière habituelle de gérer les pages hiérarchiques?
J'utilise deux stratégies ici ...
1) est une simple redirection vers le premier enfant (en utilisant l'ordre du menu) page-redirect.php
<?php
/*
* Template Name: Redirector
* Description: Empty Holder (redirect page)
*/
$rp = new WP_Query(array(
'post_parent' => get_the_id(),
'post_type' => 'page',
'order' => 'asc',
'orderby' => 'menu_order'
));
if ($rp->have_posts())
while ( $rp->have_posts() ) {
$rp->the_post();
wp_redirect(get_permalink(get_the_id()));
exit;
}
wp_redirect(dirname(home_url($wp->request)));
exit;
2) générer un menu sur un parent avec un lien vers les enfants (par exemple - http://unu.edu/about )
Créez un nouveau fichier appelé page-parent.php
et entrez le code suivant dans votre nouveau fichier:
<?php
/*
* Template Name: Parent Menu
* Description: Redirects empty parent page to first child page
*/
# Parent menu goes to first child page
# askwpgirl.com/redirect-parent-page-first-child-page-wordpress
$child_page = get_pages( "child_of=" . $post->ID . "&sort_column=menu_order" );
if ( $child_page ) {
$parent_page = $child_page[0];
wp_redirect( get_permalink( $parent_page->ID ) );
}
Ensuite, placez le page-parent.php
dans le répertoire racine de votre thème enfant, par exemple:
/wp-content/themes/child-theme
Ensuite, vous verrez le nouveau modèle Parent Menu
dans l’option Template .
Enregistrez le menu parent avec le nouveau modèle et, chaque fois que vous tenterez d’accéder directement à la page parent, il sera redirigé vers la première page enfant.