如何生成WordPress插件安装链接

时间:2011-03-16 15:52:38

标签: wordpress wordpress-plugin nonce

我创建了一个插件,取代了我之前编写的插件,并添加了一些额外的东西。我想在我的旧插件的设置页面中创建一个警报,其中包含下载和安装我的新插件的链接,并告知他们开发人员不再支持旧插件。目前,从我的管理面板的插件页面,安装链接如下所示:

http://www.example.com/wp-admin/network/update.php?action=install-plugin&plugin=wptouch&_wpnonce=a8d64aa295

在我看来,创建URI时至少要记住两件事:

  1. 检查这是否是多站点设置
  2. 确保我生成正确的随机数。
  3. 有人知道如何正确地做到这一点吗?生成此URI时还需要考虑其他什么吗?

    提前感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

我找到了答案。在wp-admin/import.php中,有一个很好的例子说明了这一点。

这是我的实施:

$plugin_name = 'my_plugin_name';
$install_link = '<a href="' . esc_url( network_admin_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin_name . '&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox" title="More info about ' . $plugin_name . '">Install ' . $plugin_name . '</a>';

然后只需在管理页面的任何位置输出该链接标记。

如果您想获得想象并添加厚箱模态窗口效果,只需使用函数add_thickbox()并将其附加到在典型管理请求中调用的操作,例如:

add_action('admin_menu', 'my_plugin_add_thickbox');
function my_plugin_add_thickbox() {
    add_thickbox();
}

应该这样做!

答案 1 :(得分:1)

$action = 'install-plugin';
$slug = 'akismet';
wp_nonce_url(
    add_query_arg(
        array(
            'action' => $action,
            'plugin' => $slug
        ),
        admin_url( 'update.php' )
    ),
    $action.'_'.$slug
);

使用它。我找到了这个,我相信它会起作用。