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

WordPress中如何在子页面调用父页面自定义字段到页脚

这个场景我碰到过好几次,要解决多级子页面调用顶层父页自定义字段的问题,关键就是先找到当前页面的最顶层父页面ID,再用这个ID去拉取对应的字段值。我帮你调整代码:

第一步:添加获取顶层父页面ID的函数

先把这个函数加到你的主题functions.php文件(或者自定义插件里),它会递归查找页面的最上层父级:

function get_top_parent_id($post_id) {
    // 获取当前页面的父ID
    $parent_id = wp_get_post_parent_id($post_id);
    
    // 如果存在父级,继续往上追溯,直到没有父级为止
    while ($parent_id != 0) {
        $post_id = $parent_id;
        $parent_id = wp_get_post_parent_id($post_id);
    }
    
    // 返回最顶层父页ID(如果当前页面就是顶层,返回自身ID)
    return $post_id;
}

第二步:修改你的页脚代码

把原来直接使用$post->ID的地方,替换成我们刚获取的顶层父页面ID:

<?php 
// 获取当前页面的顶层父页面ID
$top_parent_id = get_top_parent_id($post->ID);

// 从顶层父页面读取自定义字段
$footer_title = get_post_meta($top_parent_id, '_cmb_footer_block_title', true);
$footer_content = apply_filters('the_content', get_post_meta($top_parent_id, '_cmb_footer_block_text', true)); 
?> 

<div class="col-xs-12 col-sm-6 col-md-3 footer-col-1">
    <h2 class="footer-title"><?php echo $footer_title; ?></h2>
    <?php echo $footer_content; ?>
</div>

额外说明

  • 不管是一级子页还是N级子页面,这个逻辑都会自动定位到最上层的父页面,完美适配你的8个父页面场景。
  • 如果当前页面本身就是没有父级的顶层页面,函数会直接返回它自己的ID,所以顶层页面的页脚内容依然正常显示,不需要额外加判断逻辑。
  • 记得确认你的顶层父页面已经正确设置了_cmb_footer_block_title和_cmb_footer_block_text这两个自定义字段哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:03