wordpress - Wpgraphql-使数据私有
问题描述
我想将数据设为私有(在获取查询时返回 null)。我知道有 graphql_data_is_private 过滤器,但我不知道如何实现我的查询,文档中没有示例。
文档(https://www.wpgraphql.com/filters/graphql_data_is_private/):
apply_filters( 'graphql_data_is_private', bool $is_private, string $model_name, mixed $data, string $visibility, int $owner, WP_User $current_user );
我的查询:
query MyQuery {
users {
edges {
node {
lastName
}
}
}
}
解决方案
这不是一个查询选项,它是一个 BE 定义,您应该添加一个过滤器(在您的插件或主题代码中)以修改(适应您的需要)标准 BE 行为。此过滤器(钩子)(用于查询对象)用于检查是否应返回数据。
add_filter('graphql_data_is_private', 'add_graphql_private_visibility_filter', 10, 6);
function add_graphql_private_visibility_filter($is_private, $model_name, $data, $visibility, $owner, $current_user)
{
if ('UserObject' === $model_name) {
// if( is_your_allowed_data_condition ) return false;
return true;
}
// return not changed for other objects
return $is_private;
}
推荐阅读
- model - 如何在 TensorflowJS 中构建非线性网络?
- c - 不鼓励使用“#undef”:“ssCmd”[MISRA 2012 规则 20.5,咨询]
- bash - 从大文件中提取数据的更快方法
- javascript - 如何一起调用来自不同事件的变量?
- swiftui - DatePicker for SwiftUI 中的任何日期范围
- android - 如何修复“小部件中的垂直对齐 ListView - 高度的大小有时小于文本内容”
- jquery - jQuery 嵌套选择器不工作,但 find() 工作正常
- c# - -已解决- Socket Exception - 无法建立连接,因为目标机器主动拒绝它
- python - 用实例填充二维数组
- java - java zoneddatetime:计算时保留时区ID