我能想到的最简单的方法是让你的插件“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选项,因为如果该选项不存在,它将添加该选项。
那应该差不多了。