You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现自定义插件激活后将「激活」改为「设置」并跳转至设置页

实现插件操作按钮动态切换的方案

嘿,这个需求在WordPress插件开发里太常见啦,我给你梳理一套清晰的实现步骤,直接抄代码改改就能用~

核心思路

我们要利用WordPress提供的插件操作链接过滤器,根据插件的激活状态动态生成对应的按钮文本和链接,同时确保设置页面能正常访问。

步骤1:先注册插件设置页面(如果还没做的话)

首先得有个设置页面,不然“设置”按钮没地方跳。用下面的代码注册一个简单的设置页面:

// 注册插件设置页面
add_action('admin_menu', 'my_custom_plugin_add_settings_page');
function my_custom_plugin_add_settings_page() {
    // 添加顶级菜单(也可以用add_submenu_page挂到插件菜单下)
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限要求
        'my-custom-plugin-settings', // 菜单slug
        'my_custom_plugin_render_settings_page' // 渲染页面的回调函数
    );
}

// 渲染设置页面内容(这里写你的设置表单逻辑)
function my_custom_plugin_render_settings_page() {
    echo '<div class="wrap"><h1>我的插件设置</h1><p>这里是你的插件设置内容</p></div>';
}

步骤2:动态修改插件列表的操作按钮

这一步是核心,用plugin_action_links_{$plugin_file}过滤器来替换操作链接。代码如下:

// 修改插件列表的操作链接
add_filter('plugin_action_links_' . plugin_basename(__FILE__), 'my_custom_plugin_action_links');
function my_custom_plugin_action_links($links) {
    // 获取当前插件的激活状态
    $is_active = is_plugin_active(plugin_basename(__FILE__));
    
    // 如果插件已激活,替换"激活"为"设置"链接
    if ($is_active) {
        // 找到"激活"链接的位置并替换
        foreach ($links as $key => $link) {
            if (strpos($link, 'activate') !== false) {
                unset($links[$key]);
                // 添加"设置"链接到最前面
                array_unshift($links, '<a href="' . admin_url('options-general.php?page=my-custom-plugin-settings') . '">设置</a>');
                break;
            }
        }
    }
    
    // 返回修改后的链接数组,WordPress会自动渲染成"设置 | 停用"或"激活 | 删除"
    return $links;
}

关键细节说明

  • plugin_basename(__FILE__):自动获取当前插件的文件路径(比如my-custom-plugin/my-custom-plugin.php),确保过滤器钩子名正确匹配你的插件。
  • is_plugin_active():WordPress内置函数,判断插件是否激活,这个过滤器在插件列表页加载时触发,时机完全没问题。
  • 权限控制:设置页面用了manage_options权限,你可以根据需求改成其他权限,比如edit_posts。

这样一来,你的插件安装后默认显示「激活 | 删除」,激活后就会变成「设置 | 停用」,完美符合需求~

内容的提问来源于stack exchange,提问作者raihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:53:06