如何创建插件安装链接?

时间:2014-06-18 作者:Yoav Kadosh

目前,我想我的代码生成的nonce是错误的。代码如下:

$action = \'install-plugin\';
$plugin = \'akismet\';
wp_nonce_url(
    add_query_arg(
        array(
            \'action\' => $action,
            \'plugin\' => $plugin
        ),
        admin_url( \'update.php\' )
    ),
    $action
);
将生成以下url:

http://www.example.com/wp-admin/update.php?action=install-plugin&plugin=akismet&_wpnonce=27ac98eeeb
应在何时生成(注意不同的nonce):

http://localhost/WordpressEN/wp-admin/update.php?action=install-plugin&plugin=akismet&_wpnonce=a625535dd6
单击第一个链接会导致WordPress抛出403禁止错误,并显示以下消息:

是否确实要执行此操作?

1 个回复
SO网友:Yoav Kadosh

看来我找到答案了。操作应更改如下:

$action = \'install-plugin\';
$slug = \'akismet\';
wp_nonce_url(
    add_query_arg(
        array(
            \'action\' => $action,
            \'plugin\' => $slug
        ),
        admin_url( \'update.php\' )
    ),
    $action.\'_\'.$slug
);
答案在源代码的第275行中找到:https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-admin/includes/plugin-install.php

结束

相关推荐

多站点wp-admin在转发URL后进入空白屏幕

我在家里的LAMP上安装了wordpress多站点(静态ip地址),在任何浏览器中使用我的ip。它似乎都能正常工作(我有四个子目录网络站点在其上运行)。今晚,我去了我的一个域注册商那里,将域名转发到我的静态ip地址(克隆方法)。不幸的是,如果我使用URL/wp管理员导航到wordpress站点,我无法访问任何网络站点上的仪表板(它只是在浏览器中显示一个空白屏幕)。虽然登录元不起作用,但各种联网网站的前端似乎工作正常(它完全不起作用……好像没有超链接)所以,从本质上讲,访问多站点的静态ip地址方法工作得很好