我的插件应该发布到哪里?

时间:2011-09-08 作者:Dunhamzzz

我正在创建一个简单的插件,将页面设置为列表页面的主页(显示在编辑、预览、垃圾操作等旁边),我只是想知道提交此信息的最合适/最安全的位置是什么?到目前为止,最简单的方法是使用$\\u GET参数发回插件文件本身,但这似乎很粗糙,不使用nonce或任何东西(我的插件确实有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);
}

1 个回复
最合适的回答,由SO网友:Scott 整理而成

对我来说,通过GET发送到您当前所在的页面是有意义的。

这样你就可以admin_init 并检查GET变量。

至于安全性,您可以通过URL传递nonce:http://codex.wordpress.org/Function_Reference/wp_nonce_url

结束

相关推荐

WordPress Ajax Data Security

我知道nonce可以检查意图,但如果我可以用它们来限制数据库读取,那就没有任何意义了?我的意思是,我正在使用AJAX从数据库中获取记录,但我不希望任何人通过其他方式获得该数据(向该数据库发布请求admin-ajax.php 第页)。例如,在我的AJAX处理程序中,我有这么多的工作(我正在发送$myid 以及AJAX调用中的操作):$myid = 5575; $query = \"SELECT `id` FROM table WHERE `user_id` = $myid;\"; $data