¿Alguna vez has tenido la necesidad de añadir campos personalizados a los elementos del menu? Parece que no hay una manera fácil y directa de hacerlo pero sí hay una manera.

He subido un script a github que te ayudará a conseguirlo.

Necesitarás incluir ambos archivos del repositorio en tu plugin o tema y llamar a uno de ellos, Menu.php, tal y como se indica en el ejemplo:

require_once dirname( __FILE__ ) . '/Menu.php';

Después solo necesitas construir el array de campos personalizados que necesitas y pasarlo como argumento del objeto Menu.

$fields = array(
        '_mycustom_field_1' => array(
            'label' => __( 'Custom field 1', 'domain' ),
            'element' => 'input',
            'sanitize_callback' => 'sanitize_text_field',
            'attrs' => array(
                'type' => 'text',
                ),
            ),
        '_mycustom_field_2' => array(
            'label' => __( 'Custom field 2', 'domain' ),
            'element' => 'select',
            'sanitize_callback' => 'sanitize_text_field',
            'options' => array(
                'option-1' => __( 'Option 1', 'domain' ),
                'option-2' => __( 'Option 2', 'domain' ),
                ),
            ),
        );
 
        // Menu Management custom fields.
        new \Lucymtc\Theme\Menu( $fields );

Probablemente necesites añadir estilo a través del css. Debajo de estas líneas puedes encontrar el ejemplo visual.
Espero que este script te sea de utilidad!

Como añadir campos personalizados a cada elemento del menu

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *