Siempre que sea posible, es mejor utilizar ganchos específicos de pantalla en lugar de más genéricos. en eso
, admin_init
, admin_footer
etc. (a menos que desee específicamente que su devolución de llamada se ejecute en todas las pantallas). En esta sugerencia rápida veremos cómo puede obtener fácilmente los ganchos de pantalla para cualquier página en particular.
Los enlaces específicos de la página ofrecen la forma más eficiente (y limpia) de dirigir una devolución de llamada solo para la pantalla (s) para la que lo necesita. Incluyen:
load- page-hook
- se llama antes de cargar la pantalla (la lógica para esto se puede encontrar aquí)admin_print_styles- page-hook
- Acción para imprimir estilos en el.
de la página de administraciónadmin_print_scripts- page-hook
- Acción para imprimir guiones en el
de la página de administraciónadmin_head- page-hook
- acción desencadenada dentro de la
de la página de administraciónadmin_footer- page-hook
- acción desencadenada justo por encima del cierre
etiqueta en la página de administraciónPero cual es el valor de gancho de página
para cualquier página en particular? Mirando a la carga-*
en particular, encontrará que hay una lógica bastante complicada en la determinación de la gancho de página
. En particular, trata las páginas de complementos personalizados de forma diferente a las páginas 'centrales' (como las páginas de tipo de publicación y taxonomía) y, por el bien de la compatibilidad con versiones anteriores, utilizará varios enlaces para la misma pantalla al editar publicaciones, páginas o categorías..
Las reglas generales para el valor de gancho de página
Se puede resumir como sigue:
add_menu_page ()
(y funciones relacionadas) es el ID de pantalla (el valor devuelto por add_menu_page ()
)edit.php
post-new.php
post.php
edit-tags.php
Sin embargo, el enlace de la página se genera, se almacena en última instancia en el global $ hook_suffix
.
En general, esas reglas son suficientes para determinar los ganchos específicos de la página. Pero cuando trabajo con ellos a menudo encuentro que es útil tener una referencia fácil. Para crear esta referencia fácil, agregaremos un panel a la pestaña "ayuda" en la parte superior derecha de cada pantalla que mostrará una lista de los detalles de la pantalla (ID de pantalla, base de pantalla y, lo más útil, la pantalla). sufijo de gancho). También listará los ganchos específicos de la pantalla..
Los paneles en la pestaña de ayuda se introdujeron en 3.3, por lo que esto solo funcionará para las versiones de WordPress 3.3+. Para añadir el panel utilizamos el contextual_help
filtrar. Este es un filtro para propósitos de compatibilidad con versiones anteriores, por lo que en realidad no filtramos nada. En su lugar usamos el WP_Screen :: add_help_tab
método.
/ * Agregar ayuda contextual * / add_filter ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // La función add_help_tab para la pantalla se introdujo en WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) devuelve $ contextual_help; / * ... generar contenido de ayuda ... * / $ help_content = "; $ screen-> add_help_tab (array ('id' => 'wptuts-screen-help', 'title' => 'Información de la pantalla', 'contenido' => $ help_content,)); return $ contextual_help;
Para generar el contenido de ayuda, tomamos el global $ hook_suffix
y adjuntarlo a los tallos de gancho mencionados anteriormente. También obtenemos una lista de los detalles de la pantalla, que se almacenan como propiedades de la WP_Screen
objeto.
$ hook_suffix global; // Listar propiedades de pantalla $ variables = '
Lo que nos dará algo como lo siguiente:
Puede colocar lo siguiente en el complemento de utilidad de su sitio, o (si es necesario), su tema funciones.php. Asegúrate de cambiar el nombre wptuts_screen_help
a algo único para ti.
add_action ('contextual_help', 'wptuts_screen_help', 10, 3); function wptuts_screen_help ($ contextual_help, $ screen_id, $ screen) // La función add_help_tab para la pantalla se introdujo en WordPress 3.3. if (! method_exists ($ screen, 'add_help_tab')) devuelve $ contextual_help; $ hook_suffix global; // Listar propiedades de pantalla $ variables = '