我正在制作一个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。所以问题解决了,感谢所有回答我问题的人。