Tengo un tipo de publicación personalizada, Trabajos, con 3 taxonomías debajo en el menú Admin.
Una de las taxonomías es Estado, que es Activo o Cerrado. Quiero un elemento de menú en Trabajos para trabajos activos. Lo creé con este código
add_submenu_page(
'edit.php?post_type=jobs',
'Active Jobs',
'Active Jobs',
'manage_options',
'edit.php?post_type=jobs&jobstatus=67'
);
Esto funciona perfectamente, excepto que el elemento del menú Trabajos permanece resaltado cuando la opción del menú Trabajos activos está activa. Ver captura de pantalla
Leí en este artículo Clase actual en el menú de administración usando add_submenu_page () para no incluir la babosa principal como primer parámetro. No sé cómo hacer que el submenú aparezca en la sección de navegación correcta cuando elimino la babosa del nombre de archivo.
En este momento no estoy usando una función de devolución de llamada, simplemente estoy ejecutando la misma URL que la opción predeterminada del submenú Trabajos, excepto con parámetros de consulta que filtran las publicaciones que se muestran. Si mover esto a una función de devolución de llamada resolverá el problema, puedo hacerlo. Pero no sé qué debería ir en la función de devolución de llamada. Quiero mostrar la página de edición de tipo de publicación personalizada estándar, solo con un filtro de taxonomía en su lugar. gracias por la ayuda
fuente
'edit.php?&post_type=jobs&jobstatus=67'
... que primero&
no debería estar allí, siguiendo el?
...Respuestas:
Hice este trabajo usando los menús Publicaciones y el estado Borrador. Se basa en jQuery para modificar las clases de elementos de la lista. Adaptarse para trabajar con su tipo de publicación y URL.
Este es el resultado:
fuente
Aquí hay una solución que se me ocurrió que no usa jQuery:
Hay un filtro
parent_file
en elwp-admin/menu-header.php
que se ejecuta justo antes de mostrar el menú. El comentario en línea dice:Es solo un filtro en la variable global
$parent_file
y no estoy seguro de lo que hace, pero en su lugar utilizaremos este filtro para alterar la variable global$submenu_file
, que establece el submenú resaltado. Entonces esta será la solución en su caso:Puede adaptar esto con cualquier formato de URL. Por ejemplo, utilizo el formato
admin.php?page=my_plugin_slug&action=myaction
para los submenús de mis complementos, así que utilicé esto para resaltar mis submenús:PS: Yo también trató la acción
admin_menu
de conjunto$submenu_file
, y lo hizo el trabajo en mi caso (plug-in página personalizada / babosa), pero no para losedit.php
submenús (su caso). Así que busqué otra acción / filtro que se ejecute más tarde y fue el filtroparent_file
.fuente
descubrí que también necesitas usar entidades html para tu enlace. ya que tienes
podría intentar cambiar el ampersand a su equivalente de entidad html
entonces tendrías
esto funcionó para mí ... también probé la cadena de salida para el submenú y el menú principal y verifiqué si coinciden. esta puede ser una pequeña función de utilidad para verificar esto
fuente