在WordPress中使用下划线的问题

时间:2019-05-14 作者:Sean D

我在另一篇文章中读到了那个下划线。默认情况下,js包含在Wordpress中。我正在使用它来测试是否定义了变量,但请在浏览器控制台中获取:

pluginAdminPage.js:32 Uncaught ReferenceError: _ is not defined
    at pluginAdminPage.js:32
(anonymous) @ pluginAdminPage.js:32

_.VERSION // .VERSION even autofills. So then the browser has the library imported?
"1.8.3"
它所指的代码:

if (_.isUndefined(module) === false) {
  module.exports.func = func;
}
Phpstorm皮棉和isUndefined 黄色表示缺少库导入。

然后,我尝试将下划线显式排队,但这并没有更改浏览器错误消息:

function loadAdminScripts() {
  wp_register_style(
    \'admin-style\',
    plugins_url(\'admin-style.css\', __FILE__)
  );
  wp_enqueue_style(\'admin-style\');
  wp_enqueue_script(\'jquery\');
  wp_enqueue_script(\'underscore\');
}
add_action(\'admin_enqueue_scripts\', \'loadAdminScripts\');
要使下划线正常工作,我缺少哪些步骤?

2 个回复
最合适的回答,由SO网友:kero 整理而成

您需要将其设置为脚本的依赖项,这是您可以确保的最佳方式,下划线。js已加载before 您的脚本(这意味着这些方法将可用)。

function loadAdminScripts() {
  wp_register_style(
    \'admin-style\',
    plugins_url(\'admin-style.css\', __FILE__)
  );
  wp_register_script(
    \'pluginAdminPage\',
    plugins_url(\'pluginAdminPage.js\', __FILE__),
    [
      \'jquery\',
      \'underscore\',
    ]
  );

  wp_enqueue_style(\'admin-style\');
  wp_enqueue_script(\'pluginAdminPage\');
}
add_action(\'admin_enqueue_scripts\', \'loadAdminScripts\');
检查Code Reference on wp_register_style 了解更多信息。

SO网友:Sean D

通过将下划线作为js文件的依赖项排队修复:

function loadAdminScripts() {    
  wp_enqueue_script(
    \'pluginAdminPage\', 
    plugin_dir_url(__FILE__) . \'pluginAdminPage.js\',
    [\'jquery\', \'underscore\']
    );
  }
add_action(\'admin_enqueue_scripts\', \'loadAdminScripts\');

相关推荐

Underscores in custom fields

在尝试使用meta\\u Query()执行WP\\u查询时,我遇到了一些问题,因为插件创建的自定义字段_ 在它名字的开头。虽然我注意到它是以这种方式存储在数据库中的,但我不知道它为什么会在那里,我想我必须引用它而不带下划线(对于记录,这是错误的)。为什么一些自定义字段以下划线开头,而其他字段不以下划线开头?下划线的作用是什么?在某些情况下它们是强制性的吗?