如何在WordPress中创建API处理Android端车牌黑白名单请求?
实现WordPress API对接Android应用的禁止车牌列表功能
一、在WordPress后台创建禁止车牌管理入口
针对你的基础操作能力,我们用最简单的方式添加后台管理页面,用来维护禁止车牌列表:
- 打开WordPress后台,安装并激活Code Snippets插件(无需修改主题文件,更安全)。
- 创建新代码片段,粘贴以下代码:
// 添加禁止车牌设置页面 add_action('admin_menu', 'bwlist_admin_menu'); function bwlist_admin_menu() { add_options_page( '禁止车牌列表', '禁止车牌', 'manage_options', 'bwlist-settings', 'bwlist_settings_page' ); } // 渲染设置页面内容 function bwlist_settings_page() { if (!current_user_can('manage_options')) { wp_die('无权限访问'); } // 保存设置 if (isset($_POST['bwlist_save'])) { update_option('forbidden_plates', sanitize_textarea_field($_POST['forbidden_plates'])); echo '<div class="updated"><p>设置已保存</p></div>'; } $forbidden_plates = get_option('forbidden_plates', ''); ?> <div class="wrap"> <h1>禁止车牌列表</h1> <form method="post"> <p>每行输入一个禁止的车牌格式:<code>国家代码,车牌号码</code>,例如:<code>HUN,ARH001</code></p> <textarea name="forbidden_plates" rows="10" cols="50"><?php echo esc_textarea($forbidden_plates); ?></textarea> <p><input type="submit" name="bwlist_save" class="button-primary" value="保存设置"></p> </form> </div> <?php }
- 激活该代码片段,之后在WordPress后台「设置」菜单里就能看到「禁止车牌」选项,按格式添加禁止车牌即可。
二、注册API端点处理POST请求
再创建一个新代码片段,粘贴以下代码创建/api/bwlist的API路由:
// 注册自定义REST API路由 add_action('rest_api_init', 'register_bwlist_api'); function register_bwlist_api() { register_rest_route( 'api', '/bwlist', array( 'methods' => 'POST', 'callback' => 'bwlist_api_callback', 'permission_callback' => '__return_true', // 暂时允许所有请求,后续可添加验证 ) ); } // API请求处理函数 function bwlist_api_callback($request) { // 获取POST参数 $nationality = sanitize_text_field($request->get_param('nationality')); $plate = sanitize_text_field($request->get_param('plate')); // 参数缺失时返回none if (empty($nationality) || empty($plate)) { return rest_ensure_response(array('type' => 'none')); } // 获取禁止车牌列表并转为数组 $forbidden_plates = get_option('forbidden_plates', ''); $forbidden_array = array_filter(explode("\n", $forbidden_plates)); // 检查车牌是否在禁止列表中 $is_forbidden = false; foreach ($forbidden_array as $item) { list($forbid_nat, $forbid_plate) = array_map('trim', explode(',', $item)); if ($forbid_nat === $nationality && $forbid_plate === $plate) { $is_forbidden = true; break; } } // 返回对应结果 if ($is_forbidden) { return rest_ensure_response(array('type' => 'deny')); } else { return rest_ensure_response(array('type' => 'allow')); } }
- 激活该代码片段,API即创建完成。
三、测试API功能
使用你提供的HTML测试页面时,需将form的action修改为你的WordPress站点URL + /wp-json/api/bwlist(例如:https://你的站点域名/wp-json/api/bwlist),输入车牌和国家代码提交后,即可看到返回的JSON结果。
可选安全优化
如果担心API被恶意调用,可修改permission_callback添加密钥验证:
'permission_callback' => function($request) { $api_key = $request->get_param('api_key'); return $api_key === '你的自定义密钥'; // 替换为你设置的密钥 },
之后Android应用请求时需额外携带api_key参数,提升安全性。
内容的提问来源于stack exchange,提问作者Matic R Us
相关产品推荐
相关产品推荐

