1

我将headless使用 WordPress 作为我的 CMS 进行设置。为此,我使用了以下 WordPress 插件:

  1. Advanced Custom Fields PRO- 使用专业版以获得blocks选项
  2. WP GraphiQL
  3. WP GraphQL
  4. WPGraphQL for Advanced Custom Fields- 使 ACF 字段出现在架构中

现在,我创建了自定义 ACF Gutenberg 块以实现两件事:

  1. 视觉上更干净的后端
  2. 更容易创建页面(不需要添加到ACF组,只需在后端拖放模块即可)

以下是我创建hero块 ( acf-blocks/blocks.php) 的方式:

$hero = array(
    'name' => 'hero',
    'title' => __('Hero'),
    'description' => __('Add hero section'),
    'render_callback' => 'block_render',
    'category' => 'formatting',
    'icon' => $icon,
    'mode' => 'edit',
    'category' => 'custom',
    'post_types' => array('page','post'),
    'keywords' => array( 'hero' )
);

$blocks = [
    $hero
];

return $blocks;

这是我注册它的方式(acf-blocks/function.php):

function block_acf_init(){
  $path   = get_template_directory().'/inc/acf-blocks/blocks.php';
  $blocks = require($path);
  foreach($blocks as $block) {
    acf_register_block_type($block);
  }
}

if( function_exists('acf_register_block_type') ) {
  add_action('acf/init', 'block_acf_init');
}

ACF插件中,我创建了一个名为hero. hero具有单个text字段并且具有“如果块等于英雄则显示此字段组”的规则。

注意:我已经在字段中Show in GraphQL启用了。GraphQL Field Nameblock_hero

现在,我创建了一个名为的页面homepage,在该页面中,我添加了Hero块并给文本字段一个值。

然后,在 中GraphiQL IDE,当我查看可用选项时,pages我没有看到任何与hero. 即使我在架构中搜索“英雄”,也不会出现任何内容。

WPGraphQL不适用于自定义古腾堡块?

4

0 回答 0