¿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