4

以前に作成したプラグインを置き換え、さらにいくつかのものを追加するプラグインを作成しました。古いプラグインの設定ページに、新しいプラグインをダウンロードしてインストールするためのリンクを含むアラートを作成し、古いプラグインが開発者によってサポートされなくなったことを通知したいと思います。現在、私の管理パネルのプラグインページから、インストールリンクは次のようになります。

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

URIを作成するときは、少なくとも2つの点に注意する必要があるように思われます。

  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>';

次に、そのリンクタグを管理ページの任意の場所に出力します。

ファンシーになってthickboxモーダルウィンドウ効果を追加したい場合は、関数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 に答える