rareloop/pebble-acf-blocks

此包的最新版本(dev-master)没有可用的许可证信息。

dev-master 2020-04-28 15:50 UTC

This package is auto-updated.

Last update: 2024-08-29 01:59:41 UTC


README

此包提供了一种创建使用 Twig 模板并同时与 Lumberjack 和 Primer 集成的 ACF Blocks 的方法。

安装

composer require rareloop/pebble-acf-blocks

安装后,请在 config/app.php 中注册 Service Provider

'providers' => [
    ...

    Rareloop\Lumberjack\AcfBlocks\AcfBlocksProvider::class,

    ...
],

将示例 config/acfblocks.php 文件复制到您的主题目录中。

用法

要创建一个块,首先创建 AcfBlock 的子类。这应该位于您的 Primer 组件相同的文件夹中,例如 blocks/my-block。类的名称也应为文件夹名称的大驼峰形式,在我们的例子中为 MyBlock

注意:Pebble 将命名空间 \Patterns 映射到目录 my-theme/resources/patterns

<?php

namespace Patterns\Blocks\MyBlock;

use Rareloop\Lumberjack\AcfBlocks\AcfBlock;

class MyBlock extends AcfBlock
{
    /**
     * Provide the data to pass to the template
     *
     * @return array
     */
    public function context(): array
    {
        return [
            'name' => get_field('test_field'),
        ];
    }

    /**
     * Provide the config required to register this block
     * https://www.advancedcustomfields.com/resources/acf_register_block_type/
     *
     * @return array
     */
    public static function blockConfig(): array
    {
        return [
            'name'              => 'mytestblock',
            'title'             => __('Test Block'),
            'description'       => __('A first go with a block.'),
            'category'          => 'formatting',
            'icon'              => 'admin-comments',
            'keywords'          => ['testimonial', 'quote'],
        ];
    }
}

blockConfig() 函数是 ACF 用于在 WordPress 中注册块的地方。有关更多配置选项,请参阅 ACF 文档

context() 函数是您提供在 WordPress 中使用 template.twig 文件时图案数据的地方。在此函数内,所有对 get_field() 的调用都将限于当前 Gutenberg 块,就像其他 ACF 块一样。

最后一步是将类添加到您的 config/acfblocks.php 文件中

<?php

return [
    'blocks' => [
        \Patterns\Blocks\MyBlock\MyBlock::class,
    ]
];

附加参数

您可以从您的 ACF 类中访问以下附加参数

  • $this->content - 块内部 HTML(空)
  • $this->isPreview - 块是否显示在预览中
  • $this->postId - 块附加到的帖子的 ID