web-dev-qa-db-fra.com

Où devrait mon plugin POST à?

Je crée un simple plugin pour définir une page en tant que page d'accueil à partir des pages de liste (à afficher à côté des opérations d'édition, de prévisualisation, de corbeille, etc.). Je me demandais simplement à quel endroit/endroit le plus approprié/sécurisé pour envoyer ces informations? De loin, le moyen le plus simple serait simplement de poster dans le fichier du plugin lui-même avec un paramètre $ _GET, mais cela semble plutôt hacky et n'utilise pas de nonce ou quoi que ce soit (mon plugin contient current_user_can().

Le code est aussi simple que cela:

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

Pour moi, il est logique d’envoyer via GET à la page sur laquelle vous vous trouvez.

De cette façon, il vous suffit de vous connecter à admin_init et de vérifier vos variables GET.

En ce qui concerne la sécurité, vous pouvez transmettre des noms via des URL: http://codex.wordpress.org/Function_Reference/wp_nonce_url

3
Brady