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

如何通过子主题functions.php重写WordPress主题的get_tab_options函数

重写Elementor收藏标签页小部件的选项方法

因为Elementor小部件的机制,直接修改父类方法会被主题更新覆盖,利用子主题的functions.php可以安全重写目标方法,具体操作如下:

  1. 创建自定义子类
    在子主题的functions.php文件中,编写继承原主题小部件类的新类,并重写get_tab_options方法:
// 重写收藏标签页小部件的选项方法
class Custom_Freeio_Favorite_Tabs extends Freeio_Elementor_Freeio_Favorite_Tabs {
    public function get_tab_options() {
        $options = [
            'service' => esc_html__('Service', 'freeio'),
            'employer' => esc_html__('Employer', 'freeio'),
            'freelancer' => esc_html__('Freelancer', 'freeio'),
        ];
        return $options;
    }
}
  1. 替换原Elementor小部件
    添加钩子函数,在Elementor完成所有小部件注册后,注销原小部件并注册自定义子类:
function custom_replace_favorite_tabs_widget() {
    // 确保原类已加载
    if (class_exists('Freeio_Elementor_Freeio_Favorite_Tabs')) {
        // 注销原小部件(注意:此处ID需与原小部件get_name()方法返回值一致,通常为类名的小写横线形式)
        Elementor\Plugin::instance()->widgets_manager->unregister_widget_type('freeio-favorite-tabs');
        // 注册自定义小部件
        Elementor\Plugin::instance()->widgets_manager->register_widget_type(new Custom_Freeio_Favorite_Tabs());
    }
}
add_action('elementor/widgets/widgets_registered', 'custom_replace_favorite_tabs_widget');

注意事项

  • 确认原小部件注册ID:如果不确定freeio-favorite-tabs是否正确,可以查看原主题注册该小部件的代码,或在Elementor编辑器中查看小部件标识。
  • 代码需添加到子主题functions.php的末尾,避免破坏原有代码结构。
  • 操作前建议备份子主题文件,防止语法错误导致网站异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:08