Probleme cu wp_enqueue_script în plugin-ul meu

24 iul. 2012, 18:32:11
Vizualizări: 1.26K
Voturi: 1

Lucrez la un plugin și încerc să declanșez un fișier js de fiecare dată când un post este salvat. Am citit despre asta toată dimineața și nu reușesc să înțeleg de ce nu funcționează. Aveți vreun sfat? Dacă aș lipi codul js direct în plugin, pare să funcționeze... Am verificat de mai multe ori calea către fișierul js și tot nu primesc niciun răspuns.

add_action( 'admin_init', 'plugin_admin_init' );
function plugin_admin_init() {  
    wp_register_script( 'qtool-insert-v2', plugins_url() . '/buildStatus2/' . 'qtool-insert-v2.js' );
}

add_action( 'save_post', 'add_my_script' );
function add_my_script() {
    wp_enqueue_script( 'qtool-insert-v2' );
}

Iată qtool-insert-v2.js - o simplă redirecționare.

<script type="text/javascript">
<!--
window.location = "http://www.google.com/"
//-->
alert("HELLO");
</script>
0
Toate răspunsurile la întrebare 1
5

Trebuie să folosești hook-ul admin_enqueue_scripts cu funcția ta add_my_script.

http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts

Exemplu:

function add_my_script() {
    wp_enqueue_script('qtool-insert-v2');
}add_action( 'admin_enqueue_scripts', 'add_my_script' );
24 iul. 2012 18:37:34
Comentarii

ahh bine, mulțumesc pentru sfat. Acum văd cu succes scriptul în sursă. Totuși, nu se întâmplă nicio redirecționare sau popup...

de asemenea, se pare că acest script se încarcă acum pe fiecare pagină de administrare... există vreo modalitate de a-l declanșa doar la acel hook save_post?

<script type='text/javascript' src='http://....../plugins/buildStatus2/qtool-insert.js?ver=3.3.2'></script>

Greg Greg
24 iul. 2012 18:42:50

se pare că nu am nevoie de tag-urile <script>... tot trebuie să găsesc o metodă de a declanșa asta doar la salvarea unui post

Greg Greg
24 iul. 2012 18:52:20

Poți declanșa admin_enqueue_scripts doar pe anumite pagini de administrare, vezi linkul de mai sus (http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts#Example:_Target_a_Specific_Admin_Page)

Rachel Baker Rachel Baker
24 iul. 2012 19:01:28

@Greg Încerci să rulezi JS pe o acțiune PHP de salvare a postării sau pe un eveniment de click pentru salvare?

Brian Fegter Brian Fegter
24 iul. 2012 20:02:17

@BrianFegter pe o acțiune de salvare a postării. Ori de câte ori un post este publicat sau actualizat.

Greg Greg
24 iul. 2012 20:07:58