• Stars
    star
    345
  • Rank 122,409 (Top 3 %)
  • Language
    PHP
  • Created over 5 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Composer library for generating ACF Gutenberg blocks from templates. Intended for use with Roots/Sage (http://roots.io)

Sage ACF Gutenberg Blocks

Generate ACF Gutenberg blocks just by adding templates to your Sage theme. This package is based heavily on this article by nicoprat.

Installation

Run the following in your Sage (v9 or 10) based theme directory:

composer require "mwdelaney/sage-acf-gutenberg-blocks"

Creating blocks

Add blade templates to views/blocks which get and use ACF data. Each template requires a comment block with some data in it:

{{--
  Title:
  Description:
  Category:
  Icon:
  Keywords:
  Mode:
  Align:
  PostTypes:
  SupportsAlign:
  SupportsMode:
  SupportsMultiple:
  EnqueueStyle:
  EnqueueScript:
  EnqueueAssets:
--}}

Example block template

{{--
  Title: Testimonial
  Description: Customer testimonial
  Category: formatting
  Icon: admin-comments
  Keywords: testimonial quote
  Mode: edit
  Align: left
  PostTypes: page post
  SupportsAlign: left right
  SupportsMode: false
  SupportsMultiple: false
  EnqueueStyle: styles/style.css
  EnqueueScript: scripts/script.js
  EnqueueAssets: path/to/asset
--}}

<blockquote data-{{ $block['id'] }} class="{{ $block['classes'] }}">
    <p>{{ get_field('testimonial') }}</p>
    <cite>
      <span>{{ get_field('author') }}</span>
    </cite>
</blockquote>

<style type="text/css">
  [data-{{$block['id']}}] {
    background: {{ get_field('background_color') }};
    color: {{ get_field('text_color') }};
  }
</style>

Data Options

The options in the file header map to options in the acf_register_block_type function.

Field Description Values Notes
Title Title of the block in the gutenberg editor i.e. Testimonial required
Description Description of the block in the gutenberg editor i.e. My testimonial block optional
Category Category to store the block in. Use these values or register your own custom block categories common, formatting, layout, widgets, embed required
Icon An icon property can be specified to make it easier to identify a block. Uses dashicons i.e. book-alt optional
Keywords An array of search terms to help user discover the block while searching. Sepearate values with a space. i.e. quote mention cite optional
Mode The display mode for your block. auto: Preview is shown by default but changes to edit form when block is selected. preview: Preview is always shown. Edit form appears in sidebar when block is selected. edit: Edit form is always shown. auto, preview or edit optional (defaults to preview)
Align The default block alignment. left center right wide full optional (defaults to empty string)
PostTypes An array of post types to restrict this block type to. Sepearate values with a space. i.e. post page
SupportsAlign This property adds block controls which allow the user to change the block’s alignment. Set to true to show all alignments, false to hide the alignment toolbar. Set to an array (strings separated by spaces) of specific alignment names to customize the toolbar. (boolean) true, false
or (array) left center right wide full
optional (defaults to true)
SupportsMode This property allows the user to toggle between edit and preview modes via a button. true or false optional (defaults to true)
SupportsMultiple This property allows the block to be added multiple times. true or false optional (defaults to true)
SupportsInnerBlocks This property allows the block to support the nesting of other blocks within it. true or false optional (defaults to false)
SupportsAlignText This property adds an alignment toolbar button similar to that seen when editing a paragraph of text. true or false optional (defaults to false)
SupportsAlignContent This property adds an alignment toolbar button similar to that seen when editing a core "Cover block" true or false optional (defaults to false)

Creating ACF fields

Once a block is created you'll be able to assign ACF fields to it using the standard Custom Fields interface in WordPress. We recommend using sage-advanced-custom-fields to keep your ACF fields in version control with Sage.

Filter block data

Block data can be altered via the 'sage/blocks/[block-name]/data' filter. For example, if your block template is called my-block.blade.php, you can alter the data this way:

add_filter('sage/blocks/my-block/data', function ($block) { // Do your thing here. });

Filter template folders

By default all your template files in views/blocks will be loaded. You can use the templates filter to add more folders if you wish. See an example below of how to add your own folders.

add_filter('sage-acf-gutenberg-blocks-templates', function ($folders) { 
    $folders[] = 'views/your-folder'; // Adds your folder
    return $folders;
});

More Repositories

1

bootstrap-3-shortcodes

WordPress shortcodes for easier use of Bootstrap elements in your content.
PHP
377
star
2

ZeroPoint

A modern, opinionated, bare-bones Jamstack starter using Eleventy to get "up to zero" on a project quickly and easily. https://getzeropoint.com
JavaScript
99
star
3

sage-advanced-custom-fields

Sets up saving and loading Advanced Custom Fields data as JSON for easy version control. Intended for use with Roots/Sage.
PHP
98
star
4

sage-bootstrap4-navwalker

PHP
73
star
5

acf-flexible-content-blocks

A collection of useful, reusable flexible content blocks for content development in WordPress with ACF 5 Pro. Templates included and automatically loaded.
PHP
70
star
6

Netrunner-Icon-Font

Icon font that replicates the symbols used in Android Netrunner by Fantasy Flight Games.
HTML
48
star
7

acf-complex-titles

Complex titles with previews for WordPress content types using Advanced Custom Fields Pro 5
PHP
45
star
8

trellis-backup

Ansible role to set up Stouts.backup jobs for Roots/Trellis sites
36
star
9

bootstrap-4-shortcodes

PHP
33
star
10

trellis-github-deployment

GitHub Actions and workflows to automate deployment of a Roots/Trellis project to staging and production environments.
27
star
11

roots-example-cpt

An example of a WordPress Custom Post Type designed for easy inclusion in a Roots/Bedrock project.
PHP
25
star
12

sage-fonts-preload

PHP
18
star
13

lithify

WordPress plugin that adds a WP-CLI command to convert a traditional WordPress site into a Bedrock-style WordPress installation.
PHP
12
star
14

font-awesome-shortcodes

A plugin for WordPress that adds shortcodes for easier use of the Font Awesome icons in your content.
CSS
10
star
15

sage-wp-nav-submenu

PHP
7
star
16

sage-acf-menu-icons

PHP
6
star
17

block-bootstrap-carousel

Gutenberg block for creating Bootstrap carousels
JavaScript
4
star
18

google-tag-manager-snippets

Simple WordPress plugin to add Google Tag Manager (GTM) snippets to your site's header and body
PHP
4
star
19

Columnizer-jQuery-Plugin-Bootstrap

A modified version of Adam adamwulf's jquery.columnizer which applies Bootstrap 3 column classes for responsive design
JavaScript
3
star
20

acf-cover-media

Easy, consistent cover media fields for WordPress and ACF Pro 5.
PHP
3
star
21

acf-alerts

Global alerts using ACF fields and Bootstrap classes.
PHP
2
star
22

block-container

Gutenberg block for simple container.
JavaScript
2
star
23

block-background-image

WordPress Gutenberg block for background images or colors
JavaScript
2
star
24

api-opengraph-image

JavaScript
1
star
25

acf-header-and-footer-scripts

PHP
1
star
26

block-bootstrap-accordion

JavaScript
1
star
27

sage-the-events-calendar-menu-classes

PHP
1
star
28

startingfromzero.com

An example of how easy it is to build a website with ZeroPoint!
JavaScript
1
star
29

equal-height-shortcodes

WordPress shortcode which sets each contained element to the height of the largest contained element.
PHP
1
star
30

block-parallax-image

Gutenberg block for parallax images using simple-parallax
JavaScript
1
star
31

nick-name

JavaScript
1
star
32

roots-getting-started

JavaScript
1
star