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

用户名含+符号时get_user_by("slug")查询失效的解决办法

解决get_user_by处理带加号用户slug返回false的问题

问题根源在于um_user_profile_url()返回的URL里,空格会被编码成+,而basename()直接提取的带+的字符串,和WordPress数据库中存储的用户slug格式不匹配——WordPress默认会把用户名称里的空格转成连字符(比如the user name对应的slug是the-user-name),或者原始slug里的空格在URL中被编码成了+,导致直接用提取的字符串查不到用户。

直接用下面的修改代码就能解决:

$userslug = basename(um_user_profile_url());
// 解码URL中的特殊字符,把+还原成空格
$decoded_slug = urldecode($userslug);
// 把空格替换成WordPress默认的连字符slug格式
$decoded_slug = str_replace(' ', '-', $decoded_slug);
$user = get_user_by("slug", $decoded_slug);
var_dump($user);

如果你的系统里用户slug确实是带+的(不是编码后的空格),那只保留urldecode步骤即可,它能处理所有URL编码的特殊字符,确保传入get_user_by的是正确的slug值。

内容的提问来源于stack exchange,提问作者Naomi S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:15:57