如果我重命名了一个插件(在其主php文件中),我仍然会收到更新通知吗?


17

我最近被迫编辑插件的核心文件。我已经更新了所说插件的标题,以表明它已被编辑。

我的问题是插件仍会收到更新通知吗?如果是这样,我可能会禁用此插件的更新,以防止有人忘记我的更新和覆盖。

理想情况下,我想查看插件是否获得更新,但不允许仅通过单击更新来进行更新。(必须将其卸载并重新安装,或类似方法)。


关于此问题,我最近在WordPress跟踪上发布了一个错误报告:插件/主题目录的备份。我认为,在内部进行简单的自动备份,但在使用自动更新功能之前,这将使每个人都更轻松。我看不出任何原因为何第一次发布自动更新时没有完成,也为什么没有同时执行,也为什么不应该执行。
安藤2015年

Answers:


17

正如SickHippie和AFAIK所说,您不能同时拥有两者。我要添加我在此堆栈中收集的信息的答案。


禁用单个插件的更新通知

Bainternet评论:

只需打开插件文件并将版本号更改为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' );

是什么触发了插件更新警报

奥托的答案:

该API使用了一种相当复杂的机制来将插件与它所知道的插件进行匹配,但这是要检查的主要内容:插件URI,插件名称和插件slug(插件所在的目录名称)

更改其中任何一个,都可以减少找到匹配项的机会,但是,例如,如果其中两个匹配项,仍然可以实现。

readme.txt中的信息不用于此目的。使用插件的PHP文件本身的标题。


替代方法1


从评论中拉出的替代方法2

  • 更改插件名称,版本号和目录名称
  • 安装原始插件,但将其禁用以接收更新通知
  • 向插件描述添加自定义消息(或替换原始消息)
  • 删除插件操作(Activate | Edit | Delete)和“批量操作”复选框

在此处输入图片说明

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('&nbsp;')
            });     
        </script>
    <?php
}

相关核心门票


很棒的答案!也许我将更改插件名称,版本号和目录名称,然后安装原始插件,但将其保持禁用状态,以便我可以看到它何时更新。
Zach Lysobey 2012年

1
@ZachL-太棒了!那应该很好!
SickHippie 2012年

2
您还可以修改原始插件标头Description并添加一些通知,例如:Description: ONLY FOR REFERENCE, DON'T ACTIVATE!...[rest of the description]
brasofilo 2012年

1
@ZachL-基于此评论添加了完整的第二种选择:)
brasofilo 2012年

3

您不能禁用更新,但不能禁用更新-它们是捆绑在一起的。

要完全禁用通知,请更改插件所在的文件夹名称。

我的个人方法是在主plugin.php文件中插件的标题前面加上3 a ,因此在我的插件列表中看到AAA/Plugin Name。这会将它放在列表的顶部以供参考,并将显示在插件列表和更新列表中。它基本上是一个个人标志,所以我知道不要自动更新那些特定的插件。


感谢您的回复。只是为了澄清,您是说重命名插件不会停止其更新通知吗?
Zach Lysobey 2012年

至于您的第一句话……我敢肯定,我可以找到某种方法来实现这种效果,也许可以用一些偷偷摸摸的js从通知中删除链接。
Zach Lysobey 2012年

AFAIK,重命名插件的主文件或该主文件中的标题不会停止更新通知。我相当确定插件存储库基于文件夹名称(从Repo下载的zip应该具有相同的名称加上版本号)来提取。对于禁用更新,有插件列表和更新列表,因此请确保您的JS都在两个位置触发(另外,共享该JS-可能有用)。
SickHippie 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.