无法从 Wordpress REST 读取阿拉伯字符 API

Unable to read Arabic character from Wordpress REST API

我正在尝试为 Wordpress 实施搜索 REST API。用英语一切正常,但是,当我在 URL 中输入一些阿拉伯语时,它会告诉我 rest_no_route.

这是我的英文工作版本

        register_rest_route(
            'search', 
            '/keywords/(?P<value>[\w+].+)', 
            $args
        );

完成一些 后,建议我将 [ء-ي] 添加到我的正则表达式中。但是,我不太确定在正则表达式中添加的位置,因为阿拉伯语是从右到左阅读的。

我试过(?P<value>[ء-ي][\w+].+)[ء-ي](?P<value>[\w+].+)还是不行。

有什么建议吗?

PHP中的\wshorthand默认,不匹配Unicode字母和数字。您需要使用 (*UCP)(可能与 (*UTF))PCRE 动词来使其匹配所有 Unicode letters/digits。看到一个example.

在您的情况下,您可以简单地删除 \w+ 并保留 .+ 以匹配除换行符以外的任何 1+ 个字符:

/keywords/(?P<value>.+)