在自定义帖子上添加脚本添加/编辑页面不起作用

时间:2014-02-04 作者:Yassine Qoraiche

我正在尝试在自定义帖子添加/编辑页面上添加脚本,但无法正常工作

PHP代码,(正在运行并获取Js代码)

if(strstr($_SERVER[\'REQUEST_URI\'], \'wp-admin/post-new.php\') || strstr($_SERVER[\'REQUEST_URI\'], \'wp-admin/page-new.php\')) {
wp_enqueue_script(\'myscript\', \'http://exemple.com/wp-content/themes/theme/js/rt_api.js\');
问题是Js代码没有给出结果:

Check my Js and HTMl Code

1 个回复
SO网友:Seamus Leahy

有几件事你会想做,让你包括工作和一般更好。以下是完整的代码:

function my_theme_enqueue_admin_scripts() {
    $screen = get_current_screen(); // This is how we will check what page we are on
    if ( in_array( $screen->id, array( \'post\', \'page\') ) && $screen->action == \'add\' ) {
        // Use get_template_directory_uri so we don\'t need to hardcode the URL to our theme folder
        wp_enqueue_script(\'myscript\', get_template_directory_uri().\'/js/rt_api.js\');
    }
}
// This action will call your function at the right time to enqueue your script for the admin area
add_action( \'admin_enqueue_scripts\', \'my_theme_enqueue_admin_scripts\' );
我用了hook admin_enqueue_scripts 要调用函数在管理区域的正确时间将脚本排队,我使用$screen object WordPress为管理区域创建的内容,以指示当前正在查看的页面。它有一系列属性。在我们的情况下,我正在检查$screen->id 如果是的话\'post\'\'page\', 和$screen->action 如果是的话\'add\'.get_template_directory_uri() 获取主题文件夹的URL。这样,我们就可以在任何WordPress设置中使用我们的主题,而无需中断URL

Using jQuery in Your Script

在脚本中使用jQuery时,不能使用$ WordPress附带的jQuery版本立即禁用了$ 缩写jQuery. 这是因为在过去,使用多个Javascript库是很常见的$.

在Javascript中有两个选项可以使用jQuery。

首先是使用jQuery 而不是$:

jQuery(\'#my-id\').on(\'click\', function() {} );
第二种方法是将脚本的代码封装在一个自调用函数中。你会通过的jQuery 作为参数,然后命名参数$:

(function( $ ) {
    // your code here
})( jQuery );

Debugging Tips

<确保通过查看页面源打印出您的“myscript”

检查打印的URL是否正确(很容易出现拼写错误)

确保Javascript没有错误

是另一个也使用句柄的脚本myscript 创建冲突

结束