如何隐藏WordPress已安装插件页面的「启用自动更新」链接
针对特定WordPress插件隐藏「启用自动更新」链接的方法
你当前添加的代码仅能阻止WordPress向官方API检查该插件的更新,但不会隐藏后台插件列表中的「启用自动更新」链接。要彻底移除这个链接,需要结合阻止更新检查和隐藏链接元素两段代码实现:
1. 优化阻止更新检查的代码
原代码中的API地址使用HTTP协议,现在官方已切换为HTTPS,建议修改为以下代码(确保插件不会被纳入更新检查范围):
add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 ); function dm_prevent_update_check( $r, $url ) { // 匹配HTTPS协议的插件更新检查API if ( 0 === strpos( $url, 'https://api.wordpress.org/plugins/update-check/' ) ) { $my_plugin = plugin_basename( __FILE__ ); $plugins = unserialize( $r['body']['plugins'] ); // 从更新检查列表中移除当前插件 if ( isset( $plugins->plugins[$my_plugin] ) ) { unset( $plugins->plugins[$my_plugin] ); } // 从激活插件列表中移除(若当前插件处于激活状态) if ( ( $key = array_search( $my_plugin, $plugins->active ) ) !== false ) { unset( $plugins->active[$key] ); } $r['body']['plugins'] = serialize( $plugins ); } return $r; }
2. 添加隐藏「启用自动更新」链接的代码
使用WordPress内置的plugin_auto_update_setting_html过滤器,针对特定插件替换自动更新区域的HTML内容:
add_filter( 'plugin_auto_update_setting_html', 'dm_hide_auto_update_link', 10, 3 ); function dm_hide_auto_update_link( $html, $plugin_file, $plugin_data ) { // 替换为你的插件主文件路径(例如:example-plugin/example-plugin.php) $target_plugin = 'example-plugin/example-plugin.php'; if ( $plugin_file === $target_plugin ) { // 直接返回空字符串隐藏链接,也可自定义提示文字 // return '<span style="color:#666;">该插件已禁用自动更新</span>'; return ''; } return $html; }
使用说明
- 将两段代码添加到你的插件主PHP文件(如
plugins/example-plugin/example-plugin.php)中,插件启用后即可生效。 - 确保
$target_plugin的值与plugin_basename(__FILE__)返回的路径完全一致,否则无法匹配目标插件。
内容的提问来源于stack exchange,提问作者Teshan N.
相关产品推荐
相关产品推荐

