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

如何在WordPress/PHP中对未登录用户隐藏biz_links自定义字段

实现方法:通过functions.php限制登录用户查看自定义字段

当然可以!你只需要在主题的functions.php文件中添加一段代码,利用WordPress的元数据过滤钩子,就能全局限制biz_links字段仅对登录用户可见,完全不用逐个页面修改。

具体代码

add_filter('get_post_metadata', 'restrict_biz_links_to_logged_in_users', 10, 4);
function restrict_biz_links_to_logged_in_users($value, $object_id, $meta_key, $single) {
    // 仅针对biz_links字段做限制处理
    if ($meta_key === 'biz_links') {
        // 未登录用户直接返回空值,隐藏字段内容
        if (!is_user_logged_in()) {
            return $single ? '' : array();
        }
    }
    // 其他字段保持原有逻辑正常返回
    return $value;
}

代码说明

  • get_post_metadata是WordPress内置的核心钩子,能拦截所有获取文章元数据的请求,刚好适合做全局字段权限控制
  • 函数会先判断当前请求的元字段是否是biz_links,如果是则检查用户登录状态:
    • 未登录用户:根据get_post_meta的调用场景(是否返回单个值),返回空字符串或空数组,直接隐藏字段内容
    • 登录用户:正常返回字段的原有内容
  • 网站上其他自定义字段不受任何影响,依然正常显示

额外注意事项

  • 修改functions.php前记得先备份文件,避免代码错误导致网站无法访问
  • 如果使用的是子主题,建议把代码添加到子主题的functions.php中,这样主题更新时不会丢失你的自定义修改
  • 不管你的主题是通过模板代码调用字段,还是在后台自定义字段模块显示内容,这段代码都能生效,因为所有获取元数据的操作都会经过这个钩子

内容的提问来源于stack exchange,提问作者George Locke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:57:24