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

如何在WordPress子主题中覆盖父主题函数?解决复制函数报错

解决子主题修改Oblique主题footer版权函数的问题

嘿,这个问题我太熟悉了!你直接把父主题的oblique_footer_credits函数复制到子主题导致网站崩溃,核心原因是PHP不允许同名函数重复声明——父主题已经定义过这个函数了,子主题再定义一次就会触发致命错误,这就是你看到“技术问题”提示的根源。

下面是正确的修改步骤,一步步来:

1. 先移除父主题的函数钩子绑定

我们需要先把父主题中oblique_footer_credits和oblique_footer动作钩子的关联取消掉。为了确保这个操作在父主题函数加载之后执行,我们用after_setup_theme钩子来触发:

add_action( 'after_setup_theme', 'remove_oblique_parent_footer_credits' );
function remove_oblique_parent_footer_credits() {
    remove_action( 'oblique_footer', 'oblique_footer_credits' );
}

2. 定义你自己的版权函数

现在你可以写一个属于子主题的oblique_footer_credits函数,修改里面的文本内容即可。比如下面是修改后的示例(你可以根据需求调整文本):

function oblique_footer_credits() {
    // 自定义网站链接和文本
    echo '<a href="' . esc_url( home_url( '/' ) ) . '" rel="nofollow">';
    printf( __( '欢迎访问 %s', 'oblique' ), get_bloginfo( 'name' ) );
    echo '</a>';
    
    echo '<span class="sep"> | </span>';
    
    // 自定义主题相关文本
    printf( __( '基于Oblique主题修改,由%s维护', 'oblique' ), '你的名字/团队' );
}
// 把新函数绑定到原来的钩子上
add_action( 'oblique_footer', 'oblique_footer_credits' );

额外提示:

  • 如果你不需要支持多语言,可以直接写静态文本,去掉__()和printf(),比如:
    function oblique_footer_credits() {
        echo '<a href="' . esc_url( home_url( '/' ) ) . '">我的个人博客</a>';
        echo '<span class="sep"> | </span>';
        echo '基于Oblique主题二次开发';
    }
    
  • 记得保留esc_url()来转义链接,避免安全风险;
  • 修改完成后,保存子主题的functions.php,刷新网站就能看到修改后的 footer 版权信息了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:23:32