He creado una "cartera" de tipo de publicación personalizada con algo como esto:
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
//'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 4,
'taxonomies' => array('post_tag','category'),
'supports' => array('title','editor','comments','trackbacks','revisions','custom-fields','page-attributes','thumbnail', 'excerpt', 'tags')
);
register_post_type( 'portfolio' , $args );
Y tengo algunos otros campos personalizados allí con una acción:
add_action("admin_init", "admin_init");
function admin_init(){ // add_meta_box( $id, $title, $callback, $page, $context, $priority );
add_meta_box("media", "Media Type", "media", "portfolio", "side", "high");
add_meta_box("map_meta", "Mapping Info", "map_meta", "portfolio", "normal", "high");
}
Aunque una vez tuve esto funcionando, no puedo entender que cargue scripts solo para esta página. En este momento solo los tengo con el resto de wp_enqueue_script
esta manera:
function my_init() {
if (!is_admin()) {
....
}
if (is_admin()) {
wp_register_script('Gmaps', 'http://maps.google.com/maps/api/js?sensor=false', false, '3.0', false);
wp_enqueue_script('Gmaps');
wp_register_style('admin_js', get_bloginfo('template_directory') . '/admin.js');
wp_enqueue_script('admin_js');
wp_register_script('Zmaps', get_bloginfo('template_directory') .'/scripts/maps.js', array('Gmaps'), '1.0', true);
wp_enqueue_script('Zmaps');
}
}
add_action('wp_enqueue_scripts', 'my_init');
Pero nada de esto me está cargando. ¿Cómo puedo cargar estos scripts en las páginas de administración? Mejor aún, ¿cómo puedo cargarlos específicamente para las páginas de edición del tipo de publicación personalizada de cartera?
Respuestas:
Pruebe este código para agregar scripts a las páginas de edición del tipo de publicación personalizada de su cartera.
fuente
Publicaré una solución mejor porque la respuesta aceptada es antigua y no utiliza los ganchos correctos .
En primer lugar: para poner en cola secuencias de comandos y estilos en el área de administración, debe usarse
admin_enqueue_scripts
y nada más.Segundo: Olvídate de cualquier variable global. Use el objeto de pantalla actual para realizar diferentes comprobaciones.
Aquí hay un código listo para copiar y pegar:
Nota: Reemplace
'portfolio'
con el tipo de mensaje necesario slug.fuente
Hice algunos cambios en este código para trabajar para mí:
Cambié
get_stylesheet_directory_uri() . '/admin.js'
aplugins_url( '/js/admin.js', __FILE__),
: esto era necesario porque he desarrollado un complemento para un banner, que es la mejor solución en lugar de crear CPT dentrofunctions.php
Agregué "
true
" para enviar el código en el área del pie de página en lugar de la cabecera; mejora el tiempo de cargafuente