2010-07-24 4 views
21

Je veux ajouter du code jquery personnalisé à la page Edit Post, quelque chose de vraiment simple comme montrer une div quand quelqu'un appuie sur Publier. La seule restriction est que je veux atteindre cet objectif en utilisant un plugin, sans pirater les fichiers du modèle d'administration.Comment ajouter du javascript personnalisé à WordPress Admin?

J'ai essayé de répercuter certaines balises de script en utilisant certaines actions, mais cela ne semble pas être le cas.

Répondre

40

Utilisez l'action admin_enqueue_scripts et la méthode wp_enqueue_script pour ajouter des scripts personnalisés à l'interface d'administration.

Ceci suppose que vous avez myscript.js dans votre dossier de plugin. Changer en conséquence. Le handle my_custom_script doit être unique pour votre module et votre 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

Ceci est la réponse correcte pour la version actuelle de WordPress (l'exemple est tiré directement du Codex WordPress). – thirdender

+0

Dans quel fichier dois-je placer ce code? Où placer ce code dans le fichier? – commadelimited

+0

Dans votre [fichier 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

Merci beaucoup, c'est exactement ce que je cherchais. J'ai utilisé admin_footer de toute façon. Cependant, existe-t-il un moyen de charger le contenu _only_ sur un nouveau message? – Nacho

+4

Eh bien, si vous le souhaitez aussi pour la nouvelle page de publication, vous pouvez essayer ceci: Je –

35

Il y a un extrait pour votre fichier 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'); 

fonctionne très bien sur Wordpress 3.2.1.

+0

coincé dans mon thème pour que je puisse charger un code jQuery pour masquer certaines parties de la barre d'administration que je ne veux pas que mon client de jouer avec, en plissant le site. Voyez, j'utilise le plugin PODS pour le contenu et un thème personnalisé. – Volomike

+0

@KuldeepDaftary Probablement Vous pouvez activer votre JS personnalisé via une fonction, qui sera déclenchée après chargement de la page et jQuery? –

+2

C'est la mauvaise façon d'ajouter un script. Vous devriez mettre en file d'attente le script, comme indiqué dans [la réponse de Tim] (http://stackoverflow.com/a/21914399/1924128). –

Questions connexes