No puedo hacer que jQuery se encuele en el script de edición de entradas
En el código a continuación, a menos que haga referencia directa a la biblioteca jQuery, mis funciones jQuery en la página no funcionan. ¿Qué está mal con el método de encolado que estoy intentando usar?
En functions.php:
if(is_admin())
{
/* CARGAR SCRIPTS DE ADMINISTRACIÓN
**********************************/
require_once(TEMPLATEPATH . '/functions_private.php');
}
En functions_private.php:
if( 'post.php' == $pagenow )
{
add_action('admin_print_scripts', 'my_load_ui_script');
function my_load_ui_script()
{
wp_enqueue_script('jquery');
?>
<!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>-->
<script>
if(typeof jQuery!="undefined"){
alert("Tienes jQuery cargado");//NO SE EJECUTARÁ A MENOS QUE INCLUYA JQUERY MANUALMENTE
}
jQuery(document).ready(function()
{
//código jQuery va aquí
}
}//FIN DE FUNCIÓN
}//FIN DE IF

Utiliza el hook admin_enqueue_scripts
para añadir tu propio script personalizado. Colócalo en un archivo externo y usa wp_localize_script
para pasar cualquier dato desde php a javascript. jQuery ya se utiliza en el área de administración, agregar una etiqueta script que lo cargue desde google romperá cosas.
function wpa80418_admin_enqueue( $hook ) {
if( 'post.php' != $hook )
return;
wp_enqueue_script(
'my_custom_script',
get_template_directory_uri() . '/js/myscript.js',
array('jquery')
);
}
add_action( 'admin_enqueue_scripts', 'wpa80418_admin_enqueue' );

No estoy intentando usar mi propio script. Estoy tratando de usar la copia de jQuery de WordPress. Desafortunadamente, no está funcionando. Cuando reemplazo admin_print_scripts con admin_enqueue_scripts tampoco funciona.

+1 diggy! Eso funciona pero ahora mi script aparentemente ha dañado el admin de WordPress. Ninguno de los paneles se puede abrir/cerrar. Mi script funciona bien aunque. Estoy obteniendo un error en la consola: Uncaught TypeError: Cannot call method 'toLowerCase' of undefined. Por favor publica tu respuesta para que pueda aceptarla.

porque estás agregando tu propia copia de jQuery desde una fuente externa, nuevamente, esto romperá la interfaz de administración como ya has visto. WordPress ya incluye jQuery, debería estar incluido en la mayoría de las páginas de administración, ya que todo el javascript en la interfaz de administración lo utiliza. no inyectes etiquetas de script directamente en la página, encola archivos externos para tus propios scripts.

WordPress jQuery no admite $ por defecto.
Primero añade jQuery.
function my_scripts_method() {
wp_enqueue_script(array('jquery'));
}
add_action('admin_enqueue_scripts', 'my_scripts_method');
Reemplaza este código:
jQuery(document).ready(function()
{
//código jQuery va aquí
}
con:
jQuery(document).ready(function($) {
// $() funcionará como un alias para jQuery() dentro de esta función
});

Escuchadores de eventos
Sencillo:
- El script se ejecuta inmediatamente cuando lo ejecutas, ya que no utiliza ningún escuchador de eventos de JavaScript como esperar a que se cargue el DOM, la ventana o cualquier otro elemento.
- El script encolado (jQuery) se renderizará en sus ganchos apropiados: En el head o - si se encola a mitad de página - en el footer.
Por lo tanto, jQuery simplemente no está disponible cuando lo llamas.
