web-dev-qa-db-ja.com

私のプラグインはどこにPOSTすべきですか?

リストページからホームページとしてホームページを設定するための簡単なプラグインを作成しています(編集、プレビュー、ゴミ処理などの隣に表示されます)。この情報を送信する最も適切で安全な場所は何だろうか。はるかに簡単な方法は、$ _GETパラメータを使用してプラグインファイル自体にポストバックすることですが、これはやや厄介なようで、ナンスも何も使用しません(私のプラグインにはcurrent_user_can()が含まれています)。

コードはこれと同じくらい簡単です:

function add_post_actions($actions, $post) {
    if($post->ID == get_option('page_on_front')) {
        $actions['homepage'] = '<span style="color: #999;">Your Homepage</span>';
    } else {
        $actions['homepage'] = '<a href="blah.php?post='.$post->ID.'">Set As Homepage</a>';
    }

    return $actions;
}

function change_to_homepage($postId) {
    if ( ! current_user_can( 'manage_options' ) )
        wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) );

    update_option('show_on_front', 'page');
    update_option('page_on_front', $postId);
}
3
Dunhamzzz

私には、あなたが現在いるページにGETで送ることは意味があります。

そうすれば、admin_initにフックしてGET変数をチェックするだけです。

セキュリティに関しては、URLSを介してナンスを渡すことができます。 http://codex.wordpress.org/Function_Reference/wp_nonce_url

3
Brady