织梦广告模块调用标签写法

广告位是织梦站点变现的核心位置,掌握调用标签的多种写法,可以让广告位与模板无缝融合,提升点击率与可维护性。

一、广告模块数据结构

织梦广告位存储于 dede_myad 表,字段包括 adnametimesetstarttimeendtimenormbodyexpbody。前台通过 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_myadendtime 字段;确认 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.phpGetAd 方法中加入文件缓存逻辑。

七、行动指引

梳理全站广告位清单后,建议统一规范命名、为每个广告位设置过期备选内容,并接入百度统计事件追踪点击行为。结合宝塔定时清理广告缓存脚本,让广告模块稳定运行,为流量变现提供可靠支撑。