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

用户标签变量值验证:PHP调用Mustache标签报错及表格数据隐藏问题

问题原因

你直接在PHP代码里使用Mustache模板标签{{meta_region}},导致PHP语法解析错误——PHP不识别Mustache的{{}}语法,进而触发致命错误,让整个用户列表表格渲染失败,所以所有数据被隐藏。

正确实现方法

有两种可行方案,根据需求选择:

方案1:使用Profile Builder自带的Mustache模板条件判断(推荐,符合插件原生机制)

Profile Builder的用户列表模板基于Mustache,支持条件判断语法,无需编写PHP,直接在模板中添加逻辑:

<td data-label="District" class="wppb-district_dar">
  {{#meta_region}}
    {{#eq meta_region "Nairobi"}}
      <h2>Its a Kenya!</h2>
    {{/eq}}
    {{^eq meta_region "Nairobi"}}
      <h2>Its another Region!</h2>
    {{/eq}}
  {{/meta_region}}
</td>
  • {{#meta_region}}:确保只有当region字段有值时才执行内部逻辑
  • {{#eq 变量名 "值"}}:Mustache的相等判断助手,匹配条件时显示内部内容
  • {{^eq ...}}:反向判断,不匹配条件时显示内部内容

方案2:用PHP正确获取用户元数据

如果必须用PHP实现,要通过WordPress原生函数获取用户元数据,不能直接使用模板标签:

<?php
// 获取当前用户的region元数据,注意元键要和数据库实际存储的一致
// 模板里的{{meta_region}}对应的数据库元键通常不带meta_前缀,比如"region"
$region = get_user_meta( $user->ID, 'region', true );

if ( $region === "Nairobi" ) {
  echo "<h2>Its a Kenya!</h2>";
} else {
  echo "<h2>Its another Region!</h2>";
}
?>
  • $user是Profile Builder用户列表模板中当前循环的用户对象,可直接调用
  • get_user_meta()是WordPress获取用户元数据的原生函数,第三个参数true表示返回单个值

内容的提问来源于stack exchange,提问作者Geofrey Martin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:20:29