织梦本身没有“百度地图模板”这种官方产品,你所说的“模板”通常指的是以下两种情况:
- 前端展示型模板:在网站文章页、列表页或自定义页面中,通过代码调用百度地图API,直接展示一个地图,并标注位置。
- 后台提交型模板/插件:在后台添加或编辑文章时,增加一个字段,让管理员可以填写经纬度或地址,然后在前端自动生成地图。
下面我将分别针对这两种情况,提供详细的解决方案和资源获取途径。
前端展示型(手动调用API)
这种方法最灵活,可以让你在任何页面(如关于我们、联系我们、文章详情页)自由嵌入地图。
操作步骤:
-
获取百度地图密钥
- 访问 百度地图开放平台。
- 注册并登录账号。
- 进入“控制台” -> “创建应用”。
- 选择应用类型为“浏览器端”,填写应用名称(如“我的织梦网站”),设置Referer白名单为你的网站域名(
*.yourdomain.com)。 - 创建成功后,你会得到一个
ak(API Key),这个密钥至关重要。
-
准备HTML和JS代码
- 在你的织梦模板文件中(
article_article.htm或page_about.htm),找到你想要放置地图的位置。 - 插入以下代码,并将
YOUR_API_KEY替换成你刚刚获取的密钥。
<!-- 百度地图容器 --> <div id="map" style="width: 100%; height: 400px;"></div> <!-- 引入百度地图JavaScript API --> <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=YOUR_API_KEY"></script> <script type="text/javascript"> // 创建地图实例 var map = new BMap.Map("map"); // 初始化地图,设置中心点坐标和地图级别 var point = new BMap.Point(116.404, 39.915); // 示例:北京天安门坐标 map.centerAndZoom(point, 15); // 开启鼠标滚轮缩放 map.enableScrollWheelZoom(true); // 创建标注 var marker = new BMap.Marker(point); // 将标注添加到地图中 map.addOverlay(marker); // 可选:添加信息窗口 var infoWindow = new BMap.InfoWindow("这是我的公司地址!"); marker.addEventListener("click", function(){ map.openInfoWindow(infoWindow, point); }); </script> - 在你的织梦模板文件中(
-
自定义地图信息
- 坐标:你可以通过百度地图官网拾取坐标工具,获取你想要标注的具体位置的经纬度,替换代码中的
point。 - 样式:你可以通过CSS修改
#map的宽高来调整地图大小。 - 功能:可以添加更多控件,如缩放控件、比例尺等。
- 坐标:你可以通过百度地图官网拾取坐标工具,获取你想要标注的具体位置的经纬度,替换代码中的
优点:
- 完全免费:只需要一个百度地图AK。
- 高度自定义:可以完全控制地图的样式、功能、标注点。
- 无需插件:直接修改模板文件即可。
缺点:
- 需要手动修改代码:对非技术人员有一定门槛。
- 联动:地图是静态的,除非你手动修改代码,否则不会根据文章内容变化。
后台提交型(插件/字段)
这种方法更智能,管理员在后台填写地址或经纬度,前台文章页会自动显示对应的地图。
实现方法:
-
在织梦后台添加自定义字段
- 登录织梦后台,进入“核心” -> “内容模型管理”。
- 选择你想要添加地图功能的模型(文章模型”),点击“更改”。
- 点击“字段管理”,点击“添加新字段”。
- 字段名称:
baidumap(英文小写,无空格) 百度地图- 字段类型:
大文本文本区域(方便填写地址和坐标) - 字段参数:可以留空。
- 保存。
-
修改前台模板文件
- 打开对应的前台模板文件(
article_article.htm)。 - 在需要显示地图的位置,加入以下PHP和JS代码:
{dede:field name='baidumap' runphp='yes'} $mapInfo = @explode(',', trim(@me)); if(!empty($mapInfo[0]) && !empty($mapInfo[1])){ $lng = $mapInfo[0]; // 经度 $lat = $mapInfo[1]; // 纬度 $ak = 'YOUR_API_KEY'; // 你的百度地图AK echo <<<EOT <div id="map" style="width: 100%; height: 400px;"></div> <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak={$ak}"></script> <script type="text/javascript"> var map = new BMap.Map("map"); var point = new BMap.Point({$lng}, {$lat}); map.centerAndZoom(point, 15); map.enableScrollWheelZoom(true); var marker = new BMap.Marker(point); map.addOverlay(marker); </script> EOT; } {/dede:field} - 打开对应的前台模板文件(
-
在后台填写信息
- 现在去编辑一篇文章,你会看到新增了一个“百度地图”的字段。
- 填写格式:在字段中,用英文逗号分隔经度和纬度,
404,39.915。 - 保存文章。
优点:
- 内容与地图联动:每篇文章都可以有自己的地图。
- 后台操作方便:管理员无需懂代码,只需填写坐标即可。
缺点:
- 需要手动获取坐标:管理员需要先去百度地图上查好坐标再填写。
- 需要修改模板和添加字段:操作比方案一复杂。
织梦百度地图模板下载”的资源推荐
网上确实存在一些打包好的插件或模板,但强烈建议谨慎使用,因为可能存在安全风险或与你的织梦版本不兼容。
如果你还是想寻找现成的资源,可以尝试以下途径:
-
织梦模板市场/下载站
- DedeCMS官方论坛:https://www.dedecms.com/bbs/ - 官方社区,相对安全。
- 织梦58:https://www.dede58.com/ - 资源丰富,但需仔细甄别。
- 源码之家:https://www.codehome.com/ - 搜索“织梦 百度地图”。
-
搜索关键词
- 在这些网站上使用
织梦 百度地图插件、织CMS 地图模块、DedeCMS 地图模板等关键词进行搜索。
- 在这些网站上使用
-
使用GitHub
- 在 GitHub 上搜索
dedecms baidu map,可能会找到一些开源的解决方案。
- 在 GitHub 上搜索
使用第三方资源的注意事项:
- 安全性第一:下载的文件务必用杀毒软件扫描,检查是否有后门代码。
- 版本兼容性:确认插件是否支持你的织梦版本(如DedeCMS 5.7、DedeCMS V57、DedeCMS V6等)。
- 技术支持:免费插件通常没有技术支持,遇到问题需要自己解决。
- 功能是否匹配:仔细阅读插件说明,看是否满足你的需求。
总结与建议
| 方案 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| 手动调用API | 免费、灵活、完全可控 | 需要手动修改代码,地图静态 | 有一定前端基础,只需在固定页面展示地图的用户。 |
| 后台字段联动 | 内容与地图联动,后台操作方便 | 需修改模板和字段,需手动获取坐标 | 需要为每篇文章(如公司分部、活动地点)添加不同地图的用户。 |
| 第三方插件/模板 | 开箱即用,操作简单 | 可能有安全风险,兼容性差,功能受限 | 不想自己动手,且能承担一定风险的用户。 |
我的建议是:
- 对于大多数用户,方案一已经足够,且最安全可靠。
- 如果你的需求是让每篇文章都能有自己的地图,那么方案二是最佳选择,虽然前期配置稍显繁琐,但后期使用非常方便。
- 除非你非常确定来源的可靠性,否则不推荐轻易下载和使用第三方“地图模板插件”。
希望这份详细的指南能帮助你解决问题!
