一、目标:
1、父页面显示所有子页面,如果是子页面就显示子页面对应父页面下的所有子页面。
2、选中的子页面链接显示不一样的样式。
二、代码
<?php
$current_page_id = get_the_ID(); // 获取当前页面的ID
// 判断当前页面是否为父页面
$is_parent_page = count(get_pages(array('child_of' => $current_page_id))) > 0;
// 获取父页面ID
$parent_page_id = $is_parent_page ? $current_page_id : wp_get_post_parent_id($current_page_id);
$query = new WP_Query(array('post_type' => 'page', 'post_parent' => $parent_page_id, 'order' => 'ASC'));
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
// 获取子页面的链接和标题
$child_page_id = get_the_ID();
$child_page_link = get_permalink();
$child_page_title = get_the_title();
// 检查当前页面是否为点击的链接
$is_current_page = ($current_page_id === $child_page_id);
// 设置不同样式的链接
if ($is_current_page) {
echo '<li class="nav-current"><a href="' . esc_url($child_page_link) . '">' . esc_html($child_page_title) . '</a></li>';
} else {
echo '<li><a href="' . esc_url($child_page_link) . '">' . esc_html($child_page_title) . '</a></li>';
}
}
}
// 重置查询
wp_reset_postdata();
?>
三、效果