Agregar scripts en el área de administración

2

Me gustaría poner en cola los scripts solo para una página de administración que he creado.

Aquí hay un ejemplo de esto: enlace

Pero no está funcionando para mí, creo que porque estoy escribiendo mi complemento dentro de una clase. add_action solo funciona con el constructor ??

¿Hay alguna forma de agregar scripts a una página específica desde una clase?

Se me ocurrió este método: Mi página principal de complementos es una lista de tipos de publicaciones personalizadas (si establece 'show_in_menu' => 'custom_page_slug' en el tipo de publicación args, se apodera de esa página con una lista de publicaciones). Cuando creé el tipo de publicación, configuré una variable con el nombre del tipo de publicación:

$args = register_post_type('post-type', $args );
$this->posttype = $args->name;

Entonces esta llamada en el constructor:

add_action( 'admin_print_scripts', array( &$this, 'scripts_init' ) );

Y esto en la función scripts_init :

global $current_screen;    
if( $current_screen->id == $this->posttype )
{
wp_enqueue_script( ... );
}

Funciona. Pero parece más complicado de lo que necesita ser. ¿Hay una mejor manera de lograr esto?

¡Gracias!

    
pregunta chrisguitarguy 12.06.2011 - 07:10

1 respuesta

5

En lugar de enlazar a admin_print_scripts solo , debe enlazar a su página específica que se adjunta a admin_print_scripts- . (nota guión final). La página de referencia a la que has vinculado muestra esto, pero parece que estás omitiendo la concatenación $page a admin_print_scripts- .

por ejemplo:

$page = add_theme_page( 'Options', 'Options', 'edit_theme_options', 'options-panel', 'topf_admin_options_markup' );

add_action( "admin_print_scripts-$page", 'enqueue_my_admin_scripts' );

Estoy usando el slug $page devuelto por add_theme_page; , deberías proporcionar tu propio slug. Los scripts solo se cargarán para su página específica y no hay necesidad de verificar dentro de su función de puesta en cola.

    
respondido por el Jeff 12.06.2011 - 12:12

Lea otras preguntas en las etiquetas