2010-07-24 103 views
21

我想添加一些自定義的jQuery代碼到Edit Post頁面,這非常簡單,就像有人按下Publish時顯示div一樣。如何將自定義JavaScript添加到WordPress管理員?

唯一的限制是我想通過使用插件來實現這一點,而不是黑客管理模板文件。

我試過使用某些動作回顯一些腳本標記,但它似乎不是這樣。

回答

40

使用admin_enqueue_scripts動作和wp_enqueue_script方法將自定義腳本添加到管理界面。

這假設你在你的插件文件夾中有myscript.js。相應地改變。對於您的模塊和腳本,my_custom_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

這是當前版本的WordPress的正確答案(該示例直接來自WordPress Codex)。 – thirdender 2014-03-04 23:20:38

+0

我應該把這段代碼放在什麼文件中?這個代碼應該放在哪裏? – commadelimited 2016-12-17 20:15:15

+0

在你的[插件文件](https://codex.wordpress.org/Writing_a_Plugin)。 – Tim 2016-12-19 09:16:36

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

非常感謝,這正是我一直在尋找的。反正我用過admin_footer。但是,有沒有辦法在新帖子/編輯帖子上加載內容_only_? – Nacho 2010-07-24 21:48:55

+4

那麼如果你想要它的新帖子頁面,你可以試試這個: <?php function add_jquery_data(){ global $ parent_file; if(is_admin()&& $ parent_file =='edit.php'){ //做一些事情。 }} ?> – 2010-07-24 22:29:58

35

有您的functions.php文件的一個片段:WordPress的3.2.1

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'); 

工作正常。

+0

我在主題卡,這樣我可以加載一些jQuery代碼隱藏,我不希望我的客戶搞亂,搞砸了網站管理欄的某些部分。請參閱我正在使用PODS插件來獲取內容和自定義主題。 – Volomike 2012-04-18 04:21:12

+0

@KuldeepDaftary很可能你可以通過一個函數激活你的自定義JS,這會在page和jQuery加載後觸發? – 2013-05-24 11:46:53

+2

這是添加腳本的錯誤方法。你應該排隊腳本,如[Tim的答案](http://stackoverflow.com/a/21914399/1924128)所示。 – 2015-06-30 19:45:31

相關問題