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>
...
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 ()