问题描述
我最近被迫编辑插件的核心文件。我已经更新了该插件的标题,以表明它已被编辑。
我的问题是插件还会收到更新通知吗?如果是这样,我可能会禁用此插件的更新,以防止有人忘记我的更新和覆盖。
理想情况下,我想看看插件是否可以获取更新,但是不要让它们通过点击更新来实现。 (它必须被卸载并重新安装或类似) 。
最佳解决方案
正如 SickHippie 所说和 AFAIK 一样,你不能同时拥有。我在这个堆栈中收集到的信息中添加了一个答案。
Disable update notification for individual plugins
网友评论:
Simply open up the plugin file and change the version number to something like 9.9.9
Hameedullah Khan 的答案 (删除 Akismet 更新通知):
function filter_plugin_updates( $value ) {
unset( $value->response['akismet/akismet.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
What Triggers a Plugin Update Alert
奥托的答案:
The API uses a rather elaborate mechanism to match plugins against plugins it knows about, but these are the main things checked for: Plugin URI, Plugin Name, and Plugin slug (the directory name the plugin is in)
Change any of those and you reduce the chances of it finding a match, but it might still get it if two of them match, for example.
Info in the readme.txt is not used for this. The header of the plugin’s PHP file itself is used.
替代方法 1
-
修改插件以检查您自己的自定义存储库中的更新。
-
您将不得不按照原始的插件更新,定期访问官方的 Repo 或将原始安装在某些其他 WordPress 安装中。
-
当您决定修改后的插件必须更新时,将其提交给您的 Repo,您将收到通知
-
教程:http://wp.tutsplus.com/tutorials/plugins/a-guide-to-the-wordpress-http-api-automatic-plugin-updates/
-
布拉德·威廉姆斯,奥日尔·理查德和贾斯汀·塔德洛克的书 Professional WordPress Plugin Development 有一章关于这个问题
备注方法 2 从评论中提取
-
更改插件名称,版本号和目录名称
-
安装原始插件,但将其停用以接收更新通知
-
添加一个自定义消息到插件描述 (或替换原来的)
-
删除插件操作 (激活|编辑|删除) 和批量操作的复选框
add_filter( 'all_plugins', 'wpse_56968_on_list_plugins' );
add_filter( 'plugin_action_links_akismet/akismet.php', 'wpse_56968_remove_plugin_actions', 10, 4 );
add_action( 'admin_head-plugins.php', 'wpse_56968_remove_plugin_checkbox' );
function wpse_56968_on_list_plugins( $plugins )
{
$plugins['akismet/akismet.php']['Description'] = '<strong>*** NOTICE: PLUGIN ONLY TO CHECK UPDATES IN THE ORIGINAL ONE! ***</strong> ';// . $plugins['akismet/akismet.php']['Description'];
return $plugins;
}
function wpse_56968_remove_plugin_actions( $actions, $plugin_file, $plugin_data, $context )
{
unset( $actions['activate'], $actions['edit'], $actions['delete'] );
return $actions;
}
function wpse_56968_remove_plugin_checkbox()
{
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
$('tr#akismet th.check-column').html(' ')
});
</script>
<?php
}
相关核心门票
次佳解决方案
您不能禁用更新,但不能更新通知 – 它们绑定在一起。
要完全禁用通知,请更改插件所在的文件夹名称。
我的个人方法是在主 plugin.php
文件中添加 3 a 的插件标题,所以在我的插件列表中,我看到了 AAA/Plugin Name
。这将放在列表的顶部以供参考,并将在插件列表和更新列表中显示。它基本上是一个个人标志,所以我知道不要自动更新这些特定的插件。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。