Divi Builder自定义模块

时间:2017-05-07 10:51:12

标签: php wordpress

我为Divi builder开发了一个自定义的简单模块。它在后端和前端编辑器中正确显示。

问题是它在后端或前端编辑器中根本不会保存。当我将它放入后端编辑器并保存帖子时,重新加载后端编辑器后会丢失!

这是我的模块类:

class My_Custom_Module extends ET_Builder_Module
{
    public function init()
    {
        $this->name = __('My Custom Module', 'wpl');
        $this->slug = 'CUSTOM_SLUG';
    }
}

new My_Custom_Module();

我遵循了本文https://jonathanbossenger.com/building-your-own-divi-builder-modules/How to create custom Divi module?以及Google发现的其他一些文章。

我已经尝试在get_fields函数中添加一些字段,但它也没有帮助。

另外,为了确保它不是冲突,我禁用了所有其他插件,但它没有修复,因此它与冲突无关。

2 个答案:

答案 0 :(得分:6)

我终于找到了问题,如果他们遇到同样的问题,我会在这里分享它来帮助别人。

问题中的简单模块没有保存,因为它的slug缺少et_pb_前缀。将$this->slug = 'custom_module'更改为$this->slug = 'et_pb_custom_module'时,它可以正常工作。

我没有在他们的文档中看到这条规则,但我希望他们在某处提到它。

以下是一个简单的Divi自定义模块的工作代码:

function custom_divi_register_modules()
{
    if(class_exists('ET_Builder_Module'))
    {
        class custom_divi_module extends ET_Builder_Module
        {
            public function init()
            {
                $this->name = __( 'Custom Module', 'et_builder' );
                $this->slug = 'et_pb_custom_module';
                $this->fb_support = true;
            }
        }

        new custom_divi_module;
    }
}
add_action('et_builder_ready', 'custom_divi_register_modules');

答案 1 :(得分:-1)

那件事正在发生。可能存在由wordpress中的其他插件引起的冲突。我要做的是全新安装wordpress,应用Divi主题,尝试保存模块。如果它确实保存。然后你可以通过逐个安装插件来隔离问题并知道哪个插件导致了问题。