我无法使用无头Wordpress和Graphql获得纯文本

问题描述

我正在使用React构建前端。我在GraphiQL和WooCommerce中使用无头wordpress。 现在,我创建了一些带有shortDescription的产品。但是,当我获取这些产品时,我得到的描述是HTML格式的字符串。 Picture

wordpress中,我可以将格式属性添加到shortdiscription中: 看起来像这样: Wordpress Playground

好的,这正在操场上进行。我的输出是没有HTML标签的纯文本/原始文本。当我复制此查询并执行它时,我的输出为“ null”。 在React中删除查询中的format属性后,我得到了输出,但又得到了HTML标记

解决方法

wpgraphql 利用一般的WP用户功能来控制类型和属性的可见性。

并非graphiql中所有可见的值(嵌入在管理区域中)都是公开可用的。 显示内容的公共页面不具有未注册的用户权限,而graphiql具有管理员功能。 Raact / apollo至少应包括凭据(用于cookie)或使用令牌-用于登录的用户。

对于公共内容,您可以使用“ graphql_data_is_private”过滤器覆盖admin's private标志。看起来像:

function add_graphql_private_visibility_filter($is_private,$model_name,$data,$visibility,$owner,$current_user)
{
  // start with UNSAFE 'return false;' here,then make more granular checks
  if ('PostObject' === $model_name) {
    // if ('CPT' === $data->post_type) {
        if(.....
          ...
            return false;
  ...
  return $is_private;
  
 add_filter('graphql_data_is_private',add_graphql_private_visibility_filter',10,6);