私のサイドバーは、親ページに基づいてすべての子ページをループします。たとえば、[About]セクションにいる場合は、サイドバーに[About]の子ページしか表示されません。
私の問題は、私が現在のページを強調表示する方法がないということです。たとえば、 "Our Team"という子ページ( "About"の下)にいる場合、サイドバー "Our Team"に "current-page"クラスのタグリンクを付けます。
現在の子ページに動的に "current-page"クラスを追加する方法はありますか?
<?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>
...
私はあなたがこれに苦労していることをここにそう見ます:
<?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>
そしてループの最後にaddを
wp_reset_query();
$post = $curent_post;
それ以降は、query_postsの代わりにWP_Queryを使用するようにしてください。そのページのメインクエリではありません。
そして戻ってきたらwp_list_pages()を使って投稿して例を示します