2010-07-24 100 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

相关问题