dre1080/wp-graphql-upload

为 WP GraphQL 插件添加文件上传支持。

安装数: 28,038

依赖项: 0

建议者: 0

安全性: 0

星级: 33

关注者: 3

分支: 3

公开问题: 1

类型:wordpress-plugin

v0.1.5 2023-07-17 11:43 UTC

This package is auto-updated.

Last update: 2024-09-08 01:00:01 UTC


README

此插件根据 graphql-multipart-request-spec 指定的规范,为 WPGraphQL 插件 添加上传支持。

要求

  • PHP >= 7.1
  • WordPress >= 5.0
  • WPGraphQL >= 1.0.0

激活/使用

您可以将此插件像任何 WordPress 插件一样安装和激活。从 Github 下载 .zip 文件并将其添加到您的插件目录中,然后激活。

一旦插件激活,Upload 标量类型将可用于您的突变输入字段。

如果您使用 composer

composer require dre1080/wp-graphql-upload

用法

然后您可以在突变中使用如下所示

register_graphql_mutation(
  'upload', [
      'inputFields' => [
          'file' => [
              'type' => ['non_null' => 'Upload'],
          ],
      ],
      'outputFields' => [
          'text' => [
              'type'    => 'String',
              'resolve' => function ($payload) {
                  return $payload['text'];
              },
          ],
      ],
      'mutateAndGetPayload' => function ($input) {
          if (!function_exists('wp_handle_sideload')) {
              require_once(ABSPATH . 'wp-admin/includes/file.php');
          }

          wp_handle_sideload($input['file'], [
              'test_form' => false,
              'test_type' => false,
          ]);

          return [
              'text' => 'Uploaded file was "' . $input['file']['name'] . '" (' . $input['file']['type'] . ').',
          ];
      }
  ]
);

测试

要求

要运行测试,请执行以下命令

bin/install-wp-tests.sh
vendor/bin/phpunit