如何自动升级我的插件?

时间:2011-03-13 作者:Jared

如何让我的插件弹出New version available. Upgrade Automatically 当我的插件有新版本时要显示的对话框?专门针对WP上未托管的插件。组织存储库。

3 个回复
最合适的回答,由SO网友:Dalton Rooney 整理而成

This library 集成私人托管插件的自动更新。看起来很棒。

SO网友:Rob Williams

我能想到的最简单的方法是让你的插件“phone home”检查你网站上返回当前插件版本的URL。

这样,你的插件(安装在另一个网站上)就可以对照你网站上的“当前”版本检查其版本,看看是相同的还是更新的。

编辑:样例代码

我应该指出before you implement this: 这将在屏幕顶部添加横幅。如果你只是想让你的插件在左下方的菜单中显示一个可用的更新,我认为当你将新版本上传到Wordpress存储库时,它会自动做到这一点。如果您确实希望横幅横跨顶部,请继续。

我将专门为此页面创建一个模板,以便不包括页眉和页脚:

<?php

    // Template Name: Bare Template

    while (have_posts()) : the_post();
        the_content();
    endwhile;

?>
这样,打印出来的只是页面内容,这对我们正在做的事情很有好处。

接下来,设置一个使用此模板的页面,比如“最新插件版本”。如果您现在在浏览器中查看此页面,则只需显示页面中的文本,而不需要额外的html。

在插件中,创建一个打印通知的函数。我在示例中使用了内联样式,如果需要,可以使用类。

function yourpluginname_check_for_new_version() {

    /* You probably shouldn\'t check for updates more than once a day, 
    for everyone\'s bandwidth\'s sake. */

    $last_check = get_option(\'yourpluginname_lastcheck\');
    if ( $last_check + 86400 > time() ) { return; }

    // If we\'re still here, check your site for a new version.

    $current_version = get_option(\'yourpluginname_version\');
    $latest_version = file_get_contents(\'http://www.yourdomain.com/latest-plugin-version/\');

    if ( $current_version != $latest_version ) {
        ?>
        <div style="background: #FFDDDD; color: red; width: 600px; 
                    margin: 20px auto; padding: 10px; text-align: center;
                    border: 2px red solid;">
            There\'s a new version of MY PLUGIN available! You should upgrade now.
        </div>
        <?php
    }

    // Log that we\'ve checked for an update now.
    update_option(\'yourpluginname_lastcheck\', time());

}
然后,将其连接起来以运行函数:

add_action(\'admin_notices\', \'yourpluginname_check_for_new_version\');
现在,在安装功能中,您应该为要保存在用户Wordpress中的版本号添加一个选项:

update_option( \'yourpluginname_version\', \'2.0\' );
您可以使用update\\u选项而不是add\\u选项,因为如果该选项不存在,它将添加该选项。

那应该差不多了。

SO网友:Meglio

有一个免费插件,允许对私有托管插件进行自动升级:https://github.com/meglio/wp-upgrademe

结束

相关推荐