新建资源下载文章,每次都要复设置开启下载 / 游客权限、选择预设模板,大量整理文章时,每次都要重新选择就会很头大,于是整了个自动选择的代码
1、代码不懂可以让ai解释给你
2、代码直接放到functions.php中刷新页面即可使用
3、代码为前端操作DOM,不操作数据库,也不与数据库进行交互,放心使用
代码解释:
1、当【是否开启下载功能】为 0 (关闭)时,自动修改为 1 (开启),反之不做任何修改
2、当【是否允许游客购买】为 0 (禁止)时,自动修改为 1 (允许),反之不做任何修改
3、当【选择模版】为 0 (不选择)时,自动修改为 1 (下载模板1),反之不做任何修改。(预设的下载模板如果有多个,在控制台查看模板序号,如图)

如果你不需要某个自动选择功能,也不会代码,可以用ai帮你删掉或禁止。
都有详细的注释,你也可以通过这个功能,填充更多的默认信息到下载模块的文本框,将文本框id交给AI帮你改即可。
[content_hide]
/**
* 后台自动修正下载相关下拉框默认值
* 执行顺序:
* 1. 下载功能开关(b2_open_download):关闭 → 开启
* 2. 游客购买权限(b2_down_guest_buy):禁止 → 允许
* 3. 下载模板选择(b2_single_post_download_group_0_template):不选择 → 下载模板1
*/
function b2_auto_select_download_option() {
// 安全校验:仅在WordPress后台执行,避免影响前端页面
if (!is_admin()) {
return;
}
// 内联JS脚本(原生JS,无依赖,避免冲突)
$js_code = <<<JS
// 等待DOM完全加载后执行(确保能找到所有下拉框元素)
document.addEventListener('DOMContentLoaded', function() {
/**************************
* 第1步:处理「下载功能开关」下拉框
* 元素ID:b2_open_download(可修改)
* 逻辑:当前值为0(关闭)→ 改为1(开启);已为1则不操作
**************************/
// 1.1 定位下拉框(通过ID精准匹配,修改ID需同步改这里)
const downloadSwitch = document.getElementById('b2_open_download');
if (downloadSwitch) {
// 1.2 判断当前值(0=关闭,1=开启,可根据实际值修改)
if (downloadSwitch.value === '0') {
downloadSwitch.value = '1'; // 改为「开启」
// 触发change事件(确保联动逻辑生效,比如显示/隐藏相关配置,可选保留)
downloadSwitch.dispatchEvent(new Event('change'));
}
}
/**************************
* 第2步:处理「游客购买权限」下拉框
* 元素ID:b2_down_guest_buy(可修改)
* 逻辑:当前值为0(禁止)→ 改为1(允许);已为1则不操作
**************************/
// 2.1 定位下拉框(修改ID需同步改这里)
const guestBuyPerm = document.getElementById('b2_down_guest_buy');
if (guestBuyPerm) {
// 2.2 判断当前值(0=禁止,1=允许,可根据实际值修改)
if (guestBuyPerm.value === '0') {
guestBuyPerm.value = '1'; // 改为「允许」
guestBuyPerm.dispatchEvent(new Event('change')); // 触发联动事件
}
}
/**************************
* 第3步:处理「下载模板选择」下拉框
* 元素ID:b2_single_post_download_group_0_template(可修改)
* 逻辑:当前值为0(不选择)→ 改为1(下载模板1);已为1则不操作
**************************/
// 3.1 定位下拉框(修改ID需同步改这里)
const downloadTemplate = document.getElementById('b2_single_post_download_group_0_template');
if (downloadTemplate) {
// 3.2 判断当前值(0=不选择,1=下载模板1,可根据实际值修改)
if (downloadTemplate.value === '0') {
downloadTemplate.value = '1'; // 改为「下载模板1」
downloadTemplate.dispatchEvent(new Event('change')); // 触发联动事件
}
}
});
JS;
// 将JS脚本添加到后台页面底部(依赖jquery-core确保加载时机,无需修改)
wp_add_inline_script('jquery-core', $js_code);
}
// 挂载到WordPress后台脚本加载钩子(无需修改)
add_action('admin_enqueue_scripts', 'b2_auto_select_download_option');仅需要关闭下载模块的【是否开启下载功能】,如果监测到下载模块为开启,改为关闭(主要为了配合)以下文章
[b2_insert_post id=”1940″]
相关代码
/**
* 后台自动关闭下载功能开关
* 核心逻辑:检测到下载功能开关(b2_open_download)为开启(值=1)→ 自动改为关闭(值=0)
*/
function b2_auto_close_download_switch() {
// 安全校验:仅在WordPress后台执行,避免影响前端页面
if (!is_admin()) {
return;
}
// 内联JS脚本(原生JS,无依赖,避免冲突)
$js_code = <<<JS
document.addEventListener('DOMContentLoaded', function() {
/**************************
* 处理「下载功能开关」下拉框
* 元素ID:b2_open_download(请核对后台实际ID)
* 逻辑:当前值为1(开启)→ 改为0(关闭);已为0则不操作
**************************/
// 1. 定位下拉框(通过ID精准匹配)
const downloadSwitch = document.getElementById('b2_open_download');
if (downloadSwitch) {
// 2. 判断当前值:1=开启,0=关闭(请核对后台实际值)
if (downloadSwitch.value === '1') {
downloadSwitch.value = '0'; // 改为「关闭」
// 触发change事件(确保后台联动逻辑生效,比如隐藏下载相关配置)
downloadSwitch.dispatchEvent(new Event('change', { bubbles: true }));
console.log('下载功能开关已自动关闭(原值为开启)'); // 调试用,可删除
} else {
console.log('下载功能开关已是关闭状态,无需操作'); // 调试用,可删除
}
} else {
console.log('未找到下载功能开关下拉框(ID:b2_open_download),请核对ID'); // 调试用,可删除
}
});
JS;
// 将JS脚本添加到后台页面(挂载到jquery-core确保加载时机,原生JS无依赖)
wp_add_inline_script('jquery-core', $js_code);
}
// 挂载到WordPress后台脚本加载钩子
add_action('admin_enqueue_scripts', 'b2_auto_close_download_switch');[/content_hide]
