如何根据WordPress选项页单选按钮更新wp_enqueue_scripts()
解决方法:根据自定义选项切换加载的地图脚本
没问题,我来帮你搞定这个需求。核心思路就是在wp_enqueue_scripts钩子的回调函数里,读取你选项页保存的单选值,再根据这个值动态加载对应的JS文件。
步骤1:修改functions.php中的theme_scripts函数
你只需要在原有函数里添加选项值的判断逻辑,替换掉固定的地图脚本加载代码即可。注意要和你选项页里的单选值对应(value="1"对应ERSI地图,value="2"对应Google地图):
function theme_scripts() { // 加载通用基础脚本 wp_enqueue_script( 'script', get_template_directory_uri() . '/js/scripts.js'); // 获取选项页保存的单选值,默认设为2(即默认加载Google地图) $map_option = get_option('style-radio', '2'); // 根据选项值动态加载对应地图脚本 if ($map_option === '1') { // 加载ESRI地图脚本(注意:你选项页里写的是"ERSI Map",但JS文件名是ESRI.js,建议统一拼写避免报错) wp_enqueue_script( 'Map', get_template_directory_uri() . '/js/ESRI.js' ); } else { // 默认加载Google地图脚本 wp_enqueue_script( 'Map', get_template_directory_uri() . '/js/Google.js' ); } } add_action( 'wp_enqueue_scripts', 'theme_scripts');
步骤2:注意事项
- 拼写一致性:你的选项页显示文本是
ERSI Map,但JS文件名是ESRI.js,这里建议统一拼写(要么都改成ERSI,要么都改成ESRI),避免因文件名不匹配导致脚本加载失败。 - 缓存问题:修改选项后,记得清除浏览器缓存或WordPress缓存插件的缓存,否则前台可能不会立刻显示脚本切换的效果。
- 权限验证:你的选项页已经设置了
manage_options权限,确保只有管理员能修改该设置,这部分逻辑是没问题的。
测试验证
现在你可以进入后台「设置」→「Map」页面,切换单选按钮并保存,然后查看前台页面源代码,搜索Google.js或ESRI.js,就能确认脚本是否已正确切换加载。
内容的提问来源于stack exchange,提问作者Mona Coder
相关产品推荐
相关产品推荐

