如果我重命名一个插件(在它的主php文件中),我还会收到更新通知吗?

时间:2012-06-29 作者:Zach Lysobey

我最近被迫编辑一个插件的核心文件。我已经更新了上述插件的标题,表明其已被编辑。

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

理想情况下,我想看看插件是否得到了更新,但不允许仅仅通过单击更新就实现更新。(必须卸载并重新安装,或类似)。

2 个回复
最合适的回答,由SO网友:brasofilo 整理而成

正如SickHippie和AFAIK所说,你不能两者兼得。我正在用我在此堆栈中收集的信息添加答案。


Disable update notification for individual plugins

评论中的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\' );

What Triggers a Plugin Update Alert

奥托的回答:

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

更改其中任何一个选项,都会减少它找到匹配项的机会,但如果其中两个匹配,它仍然可能找到匹配项。

自述文件中的信息。txt不用于此。使用插件PHP文件本身的头。

备选方法1修改插件以检查您自己的自定义存储库中的更新http://wp.tutsplus.com/tutorials/plugins/a-guide-to-the-wordpress-http-api-automatic-plugin-updates/Professional WordPress Plugin Development》中有一章介绍了这一问题enter image description here


    从评论中提取的替代方法2
    • 更改插件名称、版本号,和目录名
    • 安装原始插件,但使其处于停用状态以接收更新通知
    • 在插件描述中添加自定义消息(或替换原始插件)
    • 删除插件操作(激活|编辑|删除)和批量操作复选框

      enter image description here

      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
      }
      
      相关核心票据

      #10814 Plugin GUIDs

    • #8964 Allow adding headers to get_plugin_data

SO网友:SickHippie

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

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

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

结束

相关推荐

Beta Versioning of Plugins

当我为一些bug编写修复程序时,我通常会增加版本并将其发送给bug查找程序,以查看我的修复程序是否有效。如果我有1.2.5 我想创建一个测试版,一旦我提交代码,它将变得多余,我应该使用1.2.5-beta 或1.2.6-beta? 我担心的是1.2.6 <;1.2.6-beta 因此,字符串比较可能有利于beta版,而bug查找程序不会收到发布稳定版本的通知。编辑:如果在不考虑发布类型的情况下对字符串进行绝对比较,则可以使用1.2.5-fix 然后1.2.6. 该问题也概述在http://en.wik