2010-07-24 18 views
21

Desidero aggiungere un codice jquery personalizzato alla pagina Modifica post, qualcosa di veramente semplice come mostrare un div quando qualcuno preme Pubblica.Come aggiungere javascript personalizzato all'amministratore di WordPress?

L'unica limitazione è che voglio ottenere ciò tramite l'uso di un plug-in, non hackerando i file di modello di amministrazione.

Ho provato a echeggiare alcuni tag di script utilizzando alcune azioni ma non sembra essere il modo.

risposta

40

Utilizzare l'azione admin_enqueue_scripts e il metodo wp_enqueue_script per aggiungere script personalizzati all'interfaccia di amministrazione.

Si presume che sia presente myscript.js nella cartella dei plug-in. Cambia di conseguenza. L'handle my_custom_script dovrebbe essere univoco per il modulo e lo script.

function my_enqueue($hook) { 
    if ('edit.php' !== $hook) { 
     return; 
    } 
    wp_enqueue_script('my_custom_script', plugin_dir_url(__FILE__) . '/myscript.js'); 
} 

add_action('admin_enqueue_scripts', 'my_enqueue'); 
+3

Questa è la risposta corretta per la versione corrente di WordPress (l'esempio è estratto direttamente dal codice WordPress). – thirdender

+0

In che file devo inserire questo codice? Dove deve essere inserito questo codice nel file? – commadelimited

+0

Nel tuo [file plugin] (https://codex.wordpress.org/Writing_a_Plugin). – Tim

17
<?php 
function add_jquery_data() { 
    global $parent_file; 

    if (isset($_GET['action']) && $_GET['action'] == 'edit' && isset($_GET['post']) && $parent_file == 'edit.php') { 
    // Do some stuff. 
    } 
} 

add_filter('admin_head', 'add_jquery_data'); 

?> 
+0

Grazie mille, questo è esattamente quello che stavo cercando. Comunque ho usato admin_footer. Tuttavia, c'è un modo per caricare il contenuto _solo_ sul nuovo post/modifica post? – Nacho

+4

Bene se lo si desidera anche per la nuova pagina del post, è possibile provare questo:

35

C'è un frammento per il file functions.php:

function custom_admin_js() { 
    $url = get_bloginfo('template_directory') . '/js/wp-admin.js'; 
    echo '"<script type="text/javascript" src="'. $url . '"></script>"'; 
} 
add_action('admin_footer', 'custom_admin_js'); 

funziona bene su Wordpress 3.2.1.

+0

ho attaccato questo nel mio tema in modo che potessi caricare un po 'di codice jQuery per nascondere alcune parti della barra di amministrazione che non volevo il mio cliente che pasticciano con, avvitare il sito. Vedi, sto usando il plugin PODS per i contenuti e un tema personalizzato. – Volomike

+0

@KuldeepDaftary Probabilmente è possibile attivare il JS personalizzato tramite una funzione, che verrà attivata dopo il caricamento di pagina e jQuery? –

+2

Questo è il modo sbagliato per aggiungere uno script. Dovresti accodare lo script, come mostrato in [risposta di Tim] (http://stackoverflow.com/a/21914399/1924128). –

Problemi correlati