Non riesco a caricare jQuery nello script di modifica del post
Nel codice qui sotto, a meno che non inserisca manualmente un riferimento alla libreria jQuery, le mie funzioni jQuery nella pagina non funzionano. Cosa c'è di sbagliato nel metodo enqueue che sto cercando di usare?
In functions.php:
if(is_admin())
{
/* CARICA SCRIPT ADMIN
**********************************/
require_once(TEMPLATEPATH . '/functions_private.php');
}
In 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("Hai jQuery caricato");//NON PARTE A MENO CHE NON INSERISCA MANUALMENTE JQUERY
}
jQuery(document).ready(function()
{
//codice jQuery va qui
}
}//FINE FUNZIONE
}//FINE IF

Utilizza l'hook admin_enqueue_scripts
per aggiungere il tuo script personalizzato. Mettilo in un file esterno e usa wp_localize_script
per passare eventuali dati da php a javascript. jQuery è già utilizzato nella parte admin, aggiungere un tag script che lo carichi da google causerà problemi.
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' );

Non sto cercando di utilizzare il mio script. Sto cercando di utilizzare la copia di jQuery di WordPress. Sfortunatamente, non funziona. Quando sostituisco admin_print_scripts con admin_enqueue_scripts non funziona neanche.

+1 diggy! Funziona ma ora il mio script apparentemente ha incasinato l'admin di WordPress. Nessuno dei pannelli si apre/chiude più. Il mio script però funziona bene. Ottengo un errore nella console: Uncaught TypeError: Cannot call method 'toLowerCase' of undefined. Per favore posta la tua risposta così posso accettarla.

perché stai aggiungendo la tua copia di jQuery da una fonte esterna, di nuovo, questo romperà l'interfaccia di amministrazione come hai visto. WordPress include già jQuery, dovrebbe già essere presente nella maggior parte delle pagine di amministrazione, dato che tutto il javascript nell'interfaccia di amministrazione lo utilizza. non inserire tag script direttamente nella pagina, accoda file esterni per i tuoi script.

WordPress jQuery non supporta $ di default.
Per prima cosa aggiungi jQuery.
function my_scripts_method() {
wp_enqueue_script(array('jquery'));
}
add_action('admin_enqueue_scripts', 'my_scripts_method');
sostituisci questo codice:
jQuery(document).ready(function()
{
//qui vanno i bit jquery
}
con:
jQuery(document).ready(function($) {
// $() funzionerà come alias per jQuery() all'interno di questa funzione
});

Event listener
Semplice:
- Lo script viene eseguito immediatamente quando lo avvii, poiché non utilizza alcun event listener JavaScript come attendere che il DOM o la finestra o altro vengano caricati.
- Lo script accodato (jQuery) verrà renderizzato sui suoi hook appropriati: Nell'intestazione (head) o - se accodato a metà pagina - nel piè di pagina (footer).
Pertanto jQuery semplicemente non è disponibile quando lo chiami.
