4

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

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

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

  1. 检查这是否是多站点设置
  2. 确保我生成正确的随机数。

有谁知道如何正确地做到这一点?生成此 URI 时还有什么需要考虑的吗?

在此先感谢您的帮助。

4

2 回答 2

8

我找到了答案。在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();
}

应该这样做!

于 2011-03-16T20:52:59.440 回答
2
$action = 'install-plugin';
$slug = 'akismet';
wp_nonce_url(
    add_query_arg(
        array(
            'action' => $action,
            'plugin' => $slug
        ),
        admin_url( 'update.php' )
    ),
    $action.'_'.$slug
);

用这个。我发现了这个,我相信它会起作用。

于 2015-01-16T08:24:22.420 回答