Cómo agregar un submenú al menú de tipo de publicación personalizada en WordPress
Publicado: 2020-01-23Si desea agregar un elemento de submenú a un menú de tipo de publicación personalizado, debe hacerlo fácilmente utilizando un fragmento de código simple. Idealmente, el menú de tipo de publicación personalizada tiene su menú predeterminado para agregar una nueva publicación, taxonomía y todas las publicaciones, pero es posible agregar otro elemento de submenú a una página de administración de configuración de WordPress.
Antes de aprender cómo agregar un submenú al menú de tipo de publicación personalizada, es importante que comprenda cómo registrar el tipo de publicación personalizada en WordPress sin usar un complemento.
Necesita el slug del tipo de publicación personalizada como uno de los parámetros de la función add_submenu_page() para que pueda mostrar el submenú debajo del menú de tipo de publicación personalizada. Entonces, comencemos con una revisión rápida sobre cómo registrar un tipo de publicación personalizada en el tema de WordPress.
Registro de un tipo de publicación personalizada
Aunque expliqué todos los detalles sobre cómo agregar un tipo de publicación personalizada a WordPress en esa publicación; Compartiré rápidamente el código que necesita para agregar un tipo de publicación personalizada en WordPress. El código que registra un tipo de publicación personalizada es el siguiente:
/** * Tipo de publicación personalizada - register_post_type() * @description- Tutorial de Njengah Ejemplo de tipo de publicación personalizada * @enlace -https://gist.github.com/Njengah/839466b773085ac2430772e081357cee * */ add_action('init', "njengah_tutorial_cpt"); función njengah_tutorial_cpt(){ $etiquetas = matriz( 'nombre' => _x('Tutoriales', 'nombre general del tipo de publicación'), 'singular_name'=> _x('Tutorial', 'post type singular name'), 'menu_name' => _x('Tutoriales', 'menú de administración'), 'name_admin_bar' => _x('Tutorial', 'agregar nuevo en la barra de administración'), 'agregar_nuevo' => _x('Agregar nuevo', ''), 'add_new_item' => __('Agregar nuevo tutorial'), 'edit_item' => __('Editar tutorial'), 'nuevo_elemento' => __('Nuevo Tutorial'), 'all_items' => __('Todo el tutorial'), 'ver_elemento' => __('Ver Tutorial'), 'search_items' => __('Buscar tutoriales'), 'not_found' => __('No se encontraron tutoriales'), 'not_found_in_trash' => __('No se encontraron tutoriales en la papelera'), 'parent_item_colon' => __('Tutoriales para padres:'), ); $argumentos = matriz( 'jerárquico' => verdadero, 'etiquetas' => $etiquetas, 'público' => verdadero, 'publicly_queryable' => verdadero, 'descripción' => __('Descripción.'), 'show_ui' => verdadero, 'show_in_menu' => verdadero, 'show_in_nav_menus' => verdadero, 'query_var' => verdadero, 'reescribir' => verdadero, 'query_var' => verdadero, 'reescribir' => array('slug' => 'tutorial'), 'capability_type' => 'página', 'has_archive' => verdadero, 'posición_menú' => 22, "show_in_rest" => verdadero, 'soporta' => array( 'título', 'editor', 'autor', 'miniatura', 'revisiones', 'atributos de página', 'campos personalizados') ); register_post_type('tutorial', $argumentos); }
Debe agregar este código al archivo functions.php de su tema secundario y el tipo de publicación personalizada debe verse en su tablero como se muestra en la imagen a continuación:
Este código también se puede agregar a un complemento personalizado de WordPress para registrar el tipo de publicación personalizada. También debe reemplazar la palabra clave 'tutorial' en el código con su respectivo nombre de tipo de publicación personalizada, ejemplo 'libro', 'película', etc.
Agregar submenú al menú de tipo de publicación personalizada
Ahora queremos centrarnos en cómo agregar la página del submenú en el menú de tipo de publicación personalizada.
Para obtener una descripción general rápida, los siguientes son los pasos que debe seguir para agregar un elemento de submenú al menú de tipo de publicación personalizada:
- Cree un gancho de acción para registrar el submenú con las respectivas funciones de devolución de llamada . En este caso, hay dos funciones a crear.
- Reemplace el primer parámetro de add_submenu_page() con el ejemplo de slug de tipo de publicación de edición específico php?post_type='name-of-your-post-type-slug'
- Agregue el código en el php y habrá agregado con éxito el submenú al tipo de publicación personalizada.
Agregar función de página de submenú
Esta función add_submenu_page se usa para agregar un submenú en todas las páginas del menú de administración y puede usar la función remove_submenu_page para eliminar el submenú del administrador de WordPress .
La función add_submenu_page () por defecto toma 7 parámetros y el código general se puede expresar de la siguiente manera:
agregar_submenu_pagina( cadena $parent_slug, cadena $título_página, cadena $menu_title, capacidad de cadena $, cadena $menu_slug, $ función invocable = '', int $posición = nulo )
Los parámetros de función de la página Agregar submenú se pueden describir de la siguiente manera:
Parámetro | Descripción |
$parent_slug | Este es el nombre del slug para el ejemplo del menú principal, en este caso, será edit.php?post_type ='tutorials' |
$título_página | El texto que se mostrará en las etiquetas de título ejemplo 'ejemplo de subpágina de tutoriales' |
$menu_title | El texto que se mostrará en el submenú que estamos creando ejemplo 'Tutoriales' |
$capacidad | La capacidad del rol de WordPress de los usuarios que pueden acceder a este ejemplo de menú 'administradores' |
$menu_slug | Este es el slug de la página que crearemos ejemplo 'tutorials_subpage_example' |
$ función | La función de devolución de llamada que mostrará la información que queremos en la subpágina que estamos creando. Ejemplo de título 'Ejemplo de subpágina de tutoriales' |
$posicion | Esta es la posición del elemento del menú en relación con los otros submenús; puede usar este número para subir y bajar el menú según sus preferencias. |
Para ilustrar en este tutorial, agregaremos una página de submenú a la publicación personalizada de tutoriales que creamos arriba y como se muestra en la imagen a continuación:
Agregar slug de tipo de publicación personalizado al parámetro de slug principal
Para registrar nuestro submenú, debemos agregar el siguiente código al archivo functions.php a continuación, donde agregamos el código para registrar tutoriales tipo de publicación personalizada:
/** * Tipo de publicación personalizada agregar subpágina al menú de publicación personalizada * @description- Tutorial de Njengah Ejemplo de submenú de tipo de publicación personalizado * @enlace - https://gist.github.com/Njengah/0764f2c88742c19b67a212c914c9f25f * */ // Gancho add_action('admin_menu', 'add_tutorial_cpt_submenu_example'); //función de devolución de llamada admin_menu función add_tutorial_cpt_submenu_example(){ agregar_submenu_pagina( 'edit.php?post_type=tutorial', //$parent_slug 'Ejemplo de subpágina de tutorial', //$page_title 'Configuración del tutorial', //$menu_title 'manage_options', //$capacidad 'tutorial_subpage_example',//$menu_slug 'tutorial_subpage_example_render_page'//$función ); } // función de devolución de llamada add_submenu_page function tutorial_subpage_example_render_page() { echo '<h2> Ejemplo de subpágina de tutorial </h2>'; }
Cuando agrega el código a functions.php o al archivo base de su complemento, debería ver que la configuración de Tutoriales se agrega como se muestra a continuación y con todos los parámetros respectivos discutidos anteriormente y como se ilustra en la imagen a continuación:
Conclusión
Puede agregar fácilmente este código a functions.php de su tema y ajustarlo en consecuencia para agregar con éxito un submenú al menú de tipo de publicación personalizada. Lo importante de este tutorial es agregar el slug de tipo de publicación personalizado, ya que el slug principal de la función add_submenu_page dará como resultado agregar la página del submenú en el menú de tipo de publicación personalizado. Espero que pueda usar esta solución en el desarrollo de su tema de WordPress, especialmente cuando necesite una página de configuración para tipos de publicaciones personalizadas específicas; esta es sin duda la solución ideal.