Módulo personalizado Divi Builder

3 minutos de lectura

avatar de usuario
Hossein

Desarrollé un módulo simple personalizado para Divi builder. Se muestra correctamente en el editor de backend y frontend.

El problema es que no se guardará nada en el editor de backend o frontend. Cuando lo coloco en el editor de backend y guardo la publicación, ¡se perderá después de volver a cargar el editor de backend!

Aquí está mi clase de módulo:

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();

seguí este artículo https://jonathanbossenger.com/building-your-own-divi-builder-modules/ y ¿Cómo crear un módulo Divi personalizado? y algunos otros artículos que encontré por Google.

Ya intenté poner algunos campos en la función get_fields pero tampoco ayudó.

Además, para asegurarme de que no se trata de un conflicto, deshabilité todos los demás complementos, pero no se solucionó, por lo que no está relacionado con un conflicto.

  • Hay un comentario Actualización en el tutorial, ¿lo revisó? ACTUALIZACIÓN: Durante la preparación de este artículo, descubrí que mis módulos personalizados no siempre se cargaban en el Creador de páginas. No pude entender por qué hasta que descubrí cómo funciona el almacenamiento en caché de Divi Page Builder. Así que asegúrate de verificar eso también.

    – IqbalBary

    16 de mayo de 2017 a las 6:07


  • Sí, lo comprobé.

    – Hossein

    19 de mayo de 2017 a las 8:03

  • Encontré la solución yo mismo. Por favor, compruebe mi propia respuesta.

    – Hossein

    19 mayo 2017 a las 10:07

avatar de usuario
Hossein

Finalmente encontré el problema yo mismo y lo comparto aquí para ayudar a otros si enfrentan el mismo problema.

El módulo simple en la pregunta no se guarda porque su slug, al que le falta el et_pb_ prefijo. Funciona bien cuando cambio $this->slug = 'custom_module' a $this->slug = 'et_pb_custom_module'.

No vi esta regla en su documentación, pero espero que la hayan mencionado en alguna parte.

Aquí está el código de trabajo para un módulo personalizado Divi simple:

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');

  • Confirmado… el slug de un módulo personalizado requiere un et_pb_ prefijo en el slug para que Divi guarde el módulo. No estoy seguro de por qué o cómo funciona esto exactamente, pero esta es información importante si está creando módulos Divi personalizados.

    – braicán

    6 de noviembre de 2017 a las 23:11

  • Seguí un tutorial en línea para crear un módulo personalizado, pero recibí un error fatal que indicaba que la clase ‘ET_Builder_Module_Type_PostBased’ no existía. Encapsulando la clase de módulo personalizado en una función y llamando a través del gancho: add_action('et_builder_ready', 'custom_divi_register_modules'); solucionado el problema que estaba teniendo

    – Estera

    22 dic 2017 a las 21:20

  • @Hossein ¿Puede publicar más código en el ejemplo de trabajo anterior? El fragmento registra el módulo y aparece en el generador, pero estoy buscando un ejemplo simple que muestre cómo establecer un valor de campo en el generador y que aparezca en la página.

    – aalaap

    23 de febrero de 2018 a las 8:20

Eso no debería estar pasando. Puede haber un conflicto causado por otros complementos en wordpress. Lo que haría es hacer una nueva instalación de wordpress, aplicar el tema Divi, intentar guardar el módulo. Si ahorra. Luego, puede aislar el problema y saber qué complemento está causando el problema volviendo a instalar los complementos uno por uno.

  • ¡Gracias por la generosidad!

    – Rodney Zanoria

    17 de mayo de 2017 a las 7:25

  • Hola Rodney, de nada, aunque tu respuesta no resolvió el problema. Encontré el problema yo mismo. Puedes comprobar mi propia respuesta.

    – Hossein

    19 de mayo de 2017 a las 10:08

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad