You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中创建API处理Android端车牌黑白名单请求?

实现WordPress API对接Android应用的禁止车牌列表功能

一、在WordPress后台创建禁止车牌管理入口

针对你的基础操作能力,我们用最简单的方式添加后台管理页面,用来维护禁止车牌列表:

  1. 打开WordPress后台,安装并激活Code Snippets插件(无需修改主题文件,更安全)。
  2. 创建新代码片段,粘贴以下代码:
// 添加禁止车牌设置页面
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
}
  1. 激活该代码片段,之后在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'));
    }
}
  1. 激活该代码片段,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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:30:46