广告位是织梦站点变现的核心位置,掌握调用标签的多种写法,可以让广告位与模板无缝融合,提升点击率与可维护性。
一、广告模块数据结构
织梦广告位存储于 dede_myad 表,字段包括 adname、timeset、starttime、endtime、normbody、expbody。前台通过 ad.class.php 解析,根据当前时间决定显示 normbody 还是 expbody。
二、调用标签三种写法
1. 标签调用
使用 {dede:myad name='名称'/},最常用。
2. JS 调用
引用 plus/ad_js.php?aid=N,可跨域。
3. PHP 调用
echo GetAd('名称'),灵活可控。
三、详细示例
3.1 标准模板标签
{dede:myad name='index_top_banner'/}
3.2 JS 异步加载
<script src="/plus/ad_js.php?aid=12&nocache=1"></script>
参数 nocache=1 用于禁用静态缓存,适合轮播广告。
3.3 PHP 直接输出
<?php
require_once(dirname(__FILE__).'/include/common.inc.php');
echo GetAd('index_top_banner');
?>
四、广告位创建步骤
后台路径:模块 → 广告管理 → 增加一个新广告。需填写广告标识(用于标签 name 参数)、显示内容(支持 HTML)、起止时间。
技巧:广告标识建议用
位置_尺寸_序号 命名,如 list_right_300_1,便于后期维护与定位。五、常见问题原因分析
5.1 广告不显示
原因:广告标识拼写错误、广告处于过期状态、模板未开启广告解析。
解决:检查 dede_myad 表 endtime 字段;确认 config.php 中 $cfg_rewrite 不影响广告输出。
5.2 JS 调用出现乱码
原因:广告文件编码与站点编码不一致,导致中文字符乱码。
注意:GBK 站点调用 JS 广告时,必须在
ad_js.php 输出前 header('Content-type: text/html; charset=gbk')。六、性能优化建议
广告内容更新频繁时,建议将广告 HTML 输出缓存到 /data/cache/ad_N.php,避免每次请求都查询数据库。可在 include/ad.class.php 的 GetAd 方法中加入文件缓存逻辑。
七、行动指引
梳理全站广告位清单后,建议统一规范命名、为每个广告位设置过期备选内容,并接入百度统计事件追踪点击行为。结合宝塔定时清理广告缓存脚本,让广告模块稳定运行,为流量变现提供可靠支撑。