Nu pot încărca jQuery în scriptul de editare a postării
În codul de mai jos, dacă nu adaug manual o referință la biblioteca jQuery, funcțiile mele jQuery de pe pagină nu funcționează. Ce este greșit în metoda de încărcare pe care încerc să o folosesc?
În functions.php:
if(is_admin())
{
/* ÎNCĂRCARE SCRIPȚI ADMIN
**********************************/
require_once(TEMPLATEPATH . '/functions_private.php');
}
În 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("Ai jQuery încărcat");//NU VA FUNCȚIONA DECÂT DACĂ ADAUG MANUAL REFERINȚA LA JQUERY
}
jQuery(document).ready(function()
{
//aici se adaugă funcțiile jQuery
}
}//FINAL FUNCȚIE
}//FINAL IF

Folosește hook-ul admin_enqueue_scripts
pentru a adăuga propriul script personalizat. Pune-l într-un fișier extern și utilizează wp_localize_script
pentru a transmite date din php în javascript. jQuery este deja utilizat în partea de administrare, adăugarea unui tag script care îl încarcă de la google va provoca probleme.
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' );

Nu încerc să folosesc propriul meu script. Încerc să folosesc copia jQuery din WordPress. Din păcate, nu funcționează. Când înlocuiesc admin_print_scripts cu admin_enqueue_scripts, nici atunci nu funcționează.

+1 diggy! Funcționează, dar acum scriptul meu aparent a stricat administrarea WordPress. Niciunul dintre panouri nu se mai deschide/închide. Totuși, scriptul meu funcționează bine. Primesc o eroare în consolă: Uncaught TypeError: Cannot call method 'toLowerCase' of undefined. Te rog postează răspunsul tău ca să-l pot accepta.

pentru că adaugi propria ta copie a jQuery dintr-o sursă externă, din nou, acest lucru va afecta interfața de administrare așa cum ai văzut deja. WordPress vine deja cu jQuery inclus, ar trebui să fie deja prezent pe majoritatea paginilor de administrare, întrucât tot codul JavaScript din interfața de administrare îl folosește. nu injecta tag-uri script direct în pagină, folosește funcția de încărcare (enqueue) pentru fișierele externe ale scripturilor tale.

WordPress jQuery nu suportă $ implicit.
Mai întâi adaugă jQuery.
function my_scripts_method() {
wp_enqueue_script(array('jquery'));
}
add_action('admin_enqueue_scripts', 'my_scripts_method');
înlocuiește acest cod:
jQuery(document).ready(function()
{
//jquery bits go here
}
cu:
jQuery(document).ready(function($) {
// $() va funcționa ca un alias pentru jQuery() în interiorul acestei funcții
});

Ascultători de evenimente
Simplu:
- Scriptul se execută imediat când îl rulezi, deoarece nu folosește niciun ascultător de evenimente JavaScript cum ar fi așteptarea până când DOM-ul sau fereastra sau orice altceva se încarcă.
- Scriptul încărcat (jQuery) va fi randat pe cârligele sale corespunzătoare: În head sau - dacă este încărcat în mijlocul paginii - în footer.
Prin urmare, jQuery nu este disponibil atunci când îl apelezi.
