我的WordPress插件无法加载我的JavaScript文件

时间:2018-04-19 19:16:19

标签: javascript wordpress

我正在制作一个WordPress插件,该插件使用Google地图JavaScript API在地图中显示多个位置。出于这个原因,它需要在插件的前端使用javascript才能使地图生效。

为了让javascript与我的插件一起工作,我首先将我的PHP代码包含在WordPress页面中,使用插件"插入PHP"和我的Javascript和CSS在同一页面中使用插件" Scripts' n Styles"。现在,显而易见的是,这种方法并不正确,因为我无法通过这种方式将我的插件上传到WordPress目录,并要求用户安装所有这些插件。

所以我将我的PHP代码转移到我的插件的主要PHP文件中,PHP代码很好用。但是,尝试加载我的外部JS文件DynamicMap.js以及我的外部CSS文件DynamicMap.css根本不起作用。现在我不知道CSS但我知道JS文件根本没有加载,因为我在JS文件的第一行有一个alert命令,它应该指示该文件成功加载。那么这可能是什么问题呢?

以下是我的插件主要PHP文件中的相关代码: (请注意,我使用add_shortcode函数在任何页面中显示插件的前端元素,或者我将短代码添加到帖子中。)

<?php 


// register jquery and style on initialization
add_action('init', 'register_script');

function register_script()
{
  wp_register_script( 'custom_jquery', plugins_url('DynamicMap.js', __FILE__), array('jquery') );

  wp_register_style( 'new_style', plugins_url('DynamicMap.css', __FILE__), false, '1.0.0', 'all');
}

// use the registered jquery and style above
add_action('wp_enqueue_scripts', 'enqueue_style');

function enqueue_style()
{
  wp_enqueue_script('custom_jquery');

  wp_enqueue_style( 'new_style' );
} 



function RenderPluginFrontend()
{

  //PHP code to connect to the database.

  //PHP code that allows the user to select a city and area from the database, to show the selected area's stores on the map.

}

add_shortcode('DMOSL', 'RenderPluginFrontend');


function oscimp_admin()
{
  include('map_of_resellers_admin.php');
}

function mapofresellers_admin_actions()
{
  add_options_page("Map of Resellers", "Map of Resellers", "read", "Map of Resellers", "oscimp_admin");
}

add_action('admin_menu', 'mapofresellers_admin_actions');


?>

我认为没有必要在我的JS文件中包含代码,因为就像我说的那样,我在文件的第一行有一个alert命令,并且它根本没有出现在浏览器。提前感谢您的帮助。

更新:原来我的问题不在我的代码本身,但由于我对外部JS文件所做的更改并不适用,除非我清除了浏览器的缓存。

请在此处查看我的相关问题:The changes I make to an external JS file of my WP plugin are only applied after I clear my browser's cache

当我最初创建JS文件时,它没有任何alert命令让我知道它已成功加载但由于我的CSS文件中的错误而导致Google地图未显示。当我后来添加alert命令来调试它时,alert命令没有显示,因为我的浏览器使用了我的JS文件的初始缓存版本,所以我被骗了以为它不是&# 39; t loading。所以问题解决了,感谢所有回答我问题的人。

0 个答案:

没有答案