You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress:在自定义文章类型模板中显示父级页面及同级页面

当然可以实现!

下面我就给你一步步拆解怎么在自定义文章类型(CPT)模板里完成这个需求:

核心思路

我们需要先找到当前CPT所属的Level 2父页面,再获取这个Level 2页面的所有同级页面(也就是同一个Level 1父页面下的其他Level 2页面),最后循环输出时给当前所属的Level 2页面加上current类。

具体代码实现

把这段代码放到你的自定义文章类型模板文件(比如single-{cpt-slug}.php)里合适的位置即可:

<?php
// 获取当前自定义文章的ID
$current_cpt_id = get_the_ID();

// 获取当前CPT的所有祖先页面(顺序:最近父级 → 顶级父级)
$ancestors = get_post_ancestors( $current_cpt_id );

// 确保存在祖先页面(也就是CPT确实设置了Level 2父页面)
if ( ! empty( $ancestors ) ) {
    // 第一个元素就是Level 2父页面的ID(因为CPT的直接父级是Level 2)
    $level2_parent_id = $ancestors[0];
    
    // 获取Level 2页面的父级(也就是Level 1页面的ID)
    $level1_parent_id = wp_get_post_parent_id( $level2_parent_id );
    
    // 获取所有Level 1页面下的直接子页面(也就是所有Level 2同级页面)
    $sibling_pages = get_pages( array(
        'child_of'     => $level1_parent_id,
        'parent'       => $level1_parent_id, // 确保只取直接子页面,避免嵌套更深的页面
        'sort_column'  => 'menu_order', // 按后台设置的菜单顺序排序,可改成post_date按发布时间排
        'sort_order'   => 'ASC',
        'post_status'  => 'publish' // 只取已发布的页面
    ) );

    // 如果有同级页面,就输出列表
    if ( ! empty( $sibling_pages ) ) {
        echo '<ul class="level2-sibling-nav">';
        foreach ( $sibling_pages as $page ) {
            // 给当前CPT所属的Level 2页面添加current类
            $active_class = ( $page->ID === $level2_parent_id ) ? 'current' : '';
            echo '<li class="' . esc_attr( $active_class ) . '">';
            echo '<a href="' . esc_url( get_permalink( $page->ID ) ) . '">' . esc_html( get_the_title( $page->ID ) ) . '</a>';
            echo '</li>';
        }
        echo '</ul>';
    }
}
?>

关键细节说明

  1. 层级判断:get_post_ancestors返回的数组是从最近的父级开始排序的,所以第一个元素就是CPT的直接父级(也就是Level 2页面),完美匹配你的页面结构。
  2. 同级页面筛选:通过parent参数指定为Level 1页面ID,确保只获取Level 2层级的页面,不会把更深的子页面也拉进来。
  3. 安全处理:用esc_attr、esc_url、esc_html对输出内容进行转义,避免XSS安全问题,这是WordPress开发的标准最佳实践。
  4. 兼容性前提:要确保你的自定义文章类型在注册时设置了'hierarchical' => true,并且支持父页面选择(默认开启层级的话,后台编辑界面会显示父页面下拉框),不然get_post_ancestors拿不到祖先数据。

内容的提问来源于stack exchange,提问作者abbas_arezoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:05:13