2010-11-30 15 views
1

J'essaye de faire marcher ça depuis un moment maintenant. Je suis proche mais je ne trouve pas de solution de travail.Wordpress wp_list_pages: liste parent page frères et sœurs

Ma structure de page est comme ceci:

1 FIRST LEVEL 
    2 SECOND LEVEL 
    3 THIRD LEVEL 
     4 CAR 
     5 SUV 
     5 MINIVAN 
     5 FULLSIZE 
     4 MOTORCYCLE 
     4 BICYCLE 
    2 SECOND LEVEL 
    2 SECOND LEVEL 
1 FIRST LEVEL 

je besoin d'une déclaration wp_list_pages qui effectue les opérations suivantes: les 4 et pages 5ème niveau (et uniquement sur celles-ci) les listes de navigation toutes les pages du 4e niveau.

(Quand je suis à la page "CAR" la navigation devrait être CAR, MOTOS, VÉLOS. Et quand je suis à la page MINIVAN la navigation devrait être CAR, MOTOS, VÉLOS.)

Merci beaucoup pour toute aide!

+0

Avez-vous fait toutes ces pages spécifiques? ou sont-ils des messages? juste s'assurer (je sais que vous avez dit les pages de niveau 4). Est-ce que cela arrive dans tous les thèmes? – johnny

+0

Ce sont des pages. Mais je pense que vous m'avez mal compris. Je cherche une instruction wp_list_pages qui fait ce que j'ai décrit ci-dessus. – Christoph

Répondre

4
$ancestors = get_post_ancestors($post); 
if (count($ancestors) >= 3) { 
    $parent = $ancestors[2]; // third level page ID 
    wp_list_pages('depth=1&child_of=' . $parent); 
} 

Ne hésitez pas à demander si vous n'êtes pas sûr de quoi que ce soit :)

+0

L'homme, c'est parfait! J'ai dû le modifier un peu, donc les 4ème et 5ème niveaux montrent les pages de 4ème niveau. Merci beaucoup! – Christoph

1

Voici le code i finalement utilisé, grâce à la réponse de TheDeadMedic. (J'ai annulé un niveau de page donc c'est pour les 3ème et 4ème niveau)

$ancestors = get_post_ancestors($post); 
if (count($ancestors) == 2) { 
    $parent = $ancestors[0]; 
} 
elseif (count($ancestors) == 3) { 
    $parent = $ancestors[1]; 
} 

if ($parent) { 
    $tabs = wp_list_pages('depth=1&child_of=' . $parent); 
}