web-dev-qa-db-fra.com

Navigation dynamique dans la barre latérale avec mise en surbrillance de la page actuelle

Ma barre latérale parcourt toutes les pages enfants en fonction de la page parent. Par exemple, si vous vous trouvez dans la section "À propos de", vous ne verrez que les pages enfants "À propos de" dans la barre latérale.

Mon problème est que je n'ai aucun moyen de mettre en évidence la page actuelle. Par exemple, si vous êtes sur la page enfant "Notre équipe" (sous "À propos de"), j'aimerais attribuer à la barre latérale "Notre équipe" une balise de lien reliant une classe "page courante".

Est-il possible d’ajouter dynamiquement une classe "page courante" à la page enfant sur laquelle vous vous trouvez?

<?php 
if ( $post->post_parent == '4' ) {
    query_posts("post_type=page&post_parent=4&orderby=menu_order&order=asc"); 
} elseif ( $post->post_parent == '6' ) {
    query_posts("post_type=page&post_parent=6&orderby=menu_order&order=asc");
} elseif ( $post->post_parent == '8' ) {
    query_posts("post_type=page&post_parent=8&orderby=menu_order&order=asc"); 
} elseif ( $post->post_parent == '10' ) {
    query_posts("post_type=page&post_parent=10&orderby=menu_order&order=asc"); 
}
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
...
1
Ryan

Je vois que vous avez du mal à cela alors voici:

<?php 
    global $post;
    $curent_post = $post;
    $curent_post_id = $post->ID
    $parents = array('4','6','8','10');
    if (in_array($post->post_parent,$parents)){
        query_posts("post_type=page&post_parent=".$post->post_parent."&orderby=menu_order&order=asc"); 
    }
    if ( have_posts() ) : while ( have_posts() ) : the_post();
    ?>
    <a href="<?php the_permalink(); 
    if ($curent_post_id = $post->ID){
        echo ' class="highlight"';
    }
    ?>"><?php the_title(); ?></a>

et à la fin de votre boucle, ajoutez

wp_reset_query();
$post = $curent_post;

non, après cela, j'aimerais dire que vous devriez vraiment utiliser WP_Query au lieu de query_posts à tout moment où ce n'est pas la requête principale de la page.

et quand je reviendrai je posterai un exemple en utilisant wp_list_pages ()

1
Bainternet