自定义新增全局变量(两种方案,简单 + 进阶)
前置说明
当前插件内置变量是写死在 xd_news_render_html() 渲染函数里的,后台不能可视化新增变量,必须改 PHP 代码。 分两种需求:
- 简单变量:固定文字 / 固定自定义文字(推荐,不用改数据库)
- 高级变量:后台新增输入框填写内容、前台模板读取(可后台修改值)
一、方案 1:快速新增静态变量(固定值,最简单)
比如新增两个变量: {{site_tip}} = 网站提示文字 {{copyright}} = 底部版权
步骤 1:找到渲染函数末尾变量替换代码
文件里 xd_news_render_html() 函数,找到这段:
$replace_map = [
'{{today_count}}' => $today_count,
'{{banner_html}}' => $banner_html,
'{{privilege_html}}' => $privilege_html,
'{{link_bar}}' => $link_bar,
'{{item_list}}' => $item_list,
'{{pagination}}' => $pagination
];
步骤 2:直接追加你的自定义变量
$replace_map = [
'{{today_count}}' => $today_count,
'{{banner_html}}' => $banner_html,
'{{privilege_html}}' => $privilege_html,
'{{link_bar}}' => $link_bar,
'{{item_list}}' => $item_list,
'{{pagination}}' => $pagination,
// 下面两行是你新增的自定义变量
'{{site_tip}}' => '本站资源仅供学习,禁止商用',
'{{copyright}}' => '©2026 小刀资源站 版权所有'
];
步骤 3:自定义模板 HTML 直接使用
<div class="simple-list-tpl">
<h3>最新资源 <span class="count">{{today_count}}</span></h3>
<div class="tip-text">{{site_tip}}</div>
<div class="list-box">
{{item_list}}
</div>
<div class="page-box">
{{pagination}}
</div>
<div class="foot-link">
{{link_bar}}
</div>
<div class="copyright">{{copyright}}</div>
</div>
优点:不用改后台、不用加数据库、一步到位;
缺点:文字写死在代码,想修改必须改 PHP。
二、方案 2:可后台填写的动态变量(推荐长期使用)
实现效果:
- 基础设置页面多出 2 个输入框,后台随便改文字
- 自定义模板用 {{site_tip}} {{copyright}} 自动读取后台填写内容
完整修改步骤(四段代码修改)
① 第一步:默认配置新增字段
找到 $default_base_options
$default_base_options = [
'active_template' => 'template1',
'media_type' => 'image',
'banner_img' => 'https://g.gtimg.cn/music/photo_new/T057XD001003CoPL62IyR9q.png',
'banner_video' => '',
'banner_url' => '',
'show_privilege' => '1',
'posts_per_page' => 2,
'cat_ids' => '',
'exclude_pids' => '',
'only_sticky' => '0',
'stat_hours' => 24,
'data_source' => 'post',
'forum_ids' => '',
'forum_status' => 'publish',
'forum_exclude' => '',
// 新增两行自定义变量存储
'site_tip_text' => '本站资源仅供学习,禁止商用',
'copyright_text' => '©2026 小刀资源站 版权所有'
];
② 第二步:数据过滤函数允许保存字段
找到 xd_news_sanitize_base 函数,在输出数组追加:
$out['site_tip_text'] = sanitize_text_field($input['site_tip_text']);
$out['copyright_text'] = sanitize_text_field($input['copyright_text']);
③ 第三步:后台「基础设置」页面增加输入框
找到 #tab-base 基础设置表单,随便找一处插入:
<tr>
<th colspan="2"><h3>自定义变量内容(模板可用)</h3></th>
</tr>
<tr>
<th>站点提示文字 {{site_tip}}</th>
<td>
<input type="text" name="xd_news_base_options[site_tip_text]" value="<?php echo esc_attr($base_opts['site_tip_text']); ?>" class="regular-text">
</td>
</tr>
<tr>
<th>底部版权文字 {{copyright}}</th>
<td>
<input type="text" name="xd_news_base_options[copyright_text]" value="<?php echo esc_attr($base_opts['copyright_text']); ?>" class="regular-text">
</td>
</tr>
④ 第四步:渲染函数绑定变量替换
xd_news_render_html 内,先读取后台配置: 在函数最上方加入:
$site_tip = $base_opts['site_tip_text'];
$copyright = $base_opts['copyright_text'];
再修改 `$replace_map`:
$replace_map = [
'{{today_count}}' => $today_count,
'{{banner_html}}' => $banner_html,
'{{privilege_html}}' => $privilege_html,
'{{link_bar}}' => $link_bar,
'{{item_list}}' => $item_list,
'{{pagination}}' => $pagination,
'{{site_tip}}' => $site_tip,
'{{copyright}}' => $copyright
];
使用方式
- 后台设置页面会出现两个输入框,随时修改文字保存
- 自定义模板 HTML 直接插入变量:
<div class="simple-list-tpl">
<div class="tip">{{site_tip}}</div>
<h3>最新资源 {{today_count}}</h3>
{{item_list}}
{{pagination}}
<div class="copyright">{{copyright}}</div>
</div>
三、拓展:新增图片变量(示例)
如果你想后台上传图片,模板用 {{banner_two}}
- 默认配置加 banner_two_img => ”
- 后台新增图片上传框(复制原有轮播图上传代码改 name)
- 渲染函数读取图片地址,加入 $replace_map
- 模板中写 <img src=”{{banner_two}}”>
四、批量新增多个变量通用规则
- 默认数组 $default_base_options 增加存储键名
- 过滤函数 xd_news_sanitize_base 接收并清洗
- 后台表单增加输入框,name 对应 xd_news_base_options[xxx]
- 渲染函数读取 $base_opts[‘xxx’]
- $replace_map 添加 {{变量名}} => $变量
- 自定义 HTML 模板直接写 {{变量名}} 即可自动渲染
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容