2010-07-24 21 views
21

Chcę dodać niestandardowy kod jquery do strony Edytuj wpis, coś naprawdę prostego, jak pokazanie elementu div, gdy ktoś naciśnie Opublikuj.Jak dodać niestandardowy javascript do administratora WordPress?

Jedynym ograniczeniem jest to, że chcę to osiągnąć za pomocą wtyczki, a nie hackowania plików szablonów administracyjnych.

Próbowałem echo niektóre znaczniki skryptu za pomocą niektórych działań, ale nie wydaje się być sposób.

Odpowiedz

40

Użyj metody admin_enqueue_scripts i metody wp_enqueue_script, aby dodać niestandardowe skrypty do interfejsu administratora.

Zakłada się, że masz myscript.js w swoim folderze wtyczek. Zmień odpowiednio. Uchwyt my_custom_script powinien być unikalny dla twojego modułu i skryptu.

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

To jest poprawna odpowiedź dla bieżącej wersji WordPress (przykład jest pobierany bezpośrednio z kodu WordPress). – thirdender

+0

W jakim pliku powinienem umieścić ten kod? Gdzie w pliku powinien znajdować się ten kod? – commadelimited

+0

W twoim [pliku wtyczki] (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

Dzięki, to jest dokładnie to, czego szukałem. W każdym razie użyłem admin_footer. Czy istnieje jednak sposób na załadowanie treści _only_ na nowy post/edycję postu? – Nacho

+4

Jeśli chcesz go również dla nowej strony posta, możesz spróbować:

35

Jest to fragment do pliku 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'); 

działa dobrze na Wordpress 3.2.1.

+0

Wsadziłem w moim tematem tak, że mogę załadować kodu jQuery aby ukryć niektóre części paska administratora, że ​​nie chcę, żeby mój klient bawiących się, wkręcając się na stronie internetowej. Zobacz, używam wtyczki PODS do zawartości i niestandardowego motywu. – Volomike

+0

@KuldeepDaftary Prawdopodobnie możesz aktywować swój niestandardowy JS za pomocą funkcji, która zostanie uruchomiona po załadowaniu strony i jQuery? –

+2

To niewłaściwy sposób dodawania skryptu. Powinieneś umieścić skrypt, jak pokazano w [Odpowiedź Tima] (http://stackoverflow.com/a/21914399/1924128). –

Powiązane problemy