新建资源下载文章,每次都要复设置开启下载 / 游客权限、选择预设模板,大量整理文章时,每次都要重新选择就会很头大,于是整了个自动选择的代码

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]

0 讨论
热门最新
总结
暂无总结
0 / 600