1. Go to this page and download the library: Download wp-grogu/acf-manager library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wp-grogu / acf-manager example snippets
# Define field group
class Header extends \Grogu\Acf\Entities\FieldGroup
{
public function fields(): array
{
return [
Text::make('Titre', 'title')
->ray
{
return [
Location::where('post_type', 'page'),
];
}
}
# Boot field group
add_action('acf/init', fn () => Header::make()->boot());
return [
/*
|--------------------------------------------------------------------------
| The registred ACF field groups & layouts
|--------------------------------------------------------------------------
|
| Register here your ACF groups. Please note that only groups with
| at least a location needs to be registred (eg: don't need to
| register groups being cloned in other group or flexible)
|
*/
'groups' => [
App\Acf\Header::class,
],
[...]
];
use Grogu\Acf\Entities\FieldGroup;
class FreeSection extends FieldGroup
{
public function fields(): array
{
return [
FlexibleContent::make('Components')
->buttonLabel('Add a new section')
->thumbnails(true)
->modal([
'enabled' => true,
'col' => '4',
])
->layouts([
Blocks\Header::make()->toLayout(),
Blocks\Services::make()->toLayout(),
Blocks\Worldwide::make()->toLayout(),
]),
];
}
[...]
}
use Grogu\Acf\Entities\FieldSet;
$fields = FieldSet::make(get_field('header', $post_id));
[...]
/*
|--------------------------------------------------------------------------
| Load Grogu ACF Manager
|--------------------------------------------------------------------------
|
| Grogu ACF Manager module helps us create and retreive ACF field groups.
| This line starts the engine, loads the config/acf.php config file,
| and register our field groups, gutemberg blocks and layouts.
|
*/
new Grogu\Acf\Core\Bootloader;
namespace App\Acf;
use Grogu\Acf\Entities\FieldGroup;
use WordPlate\Acf\Location;
class GroupName extends FieldGroup
{
/**
* The group name to be displayed in back office. Required.
*
* @var string
*/
public string $title = 'GroupName';
/**
* The group slug to be used when transformed into a flexible layout.
*
* @var string
*/
public string $slug = 'group-name';
/**
* The group fields definition.
*
* @return array
*/
public function fields(): array
{
return [
//
];
}
/**
* The group location configuration.
*
* @return array
*/
public function location(): array
{
return [
// Location::where('post_type', 'page'),
];
}
}
class GroupName extends FieldGroup
{
[...]
/**
* The group style.
*
* @var string default|seamless
*/
public string $style = 'default';
/**
* The group position.
*
* @var string normal
*/
public string $position = 'normal';
/**
* The group menu order. Lowest value appears first.
*
* @var int
*/
public int $order = 10;
/**
* The hidden items on screen
*
* @var array
*/
public array $hide_on_screen = [
'the_content',
];
}
[...]
'groups' => [
App\Acf\GroupName::class,
],
public function fields(): array
{
return [
...Groups\Header::clone(),
Text::make('Headline', 'headline'),
];
}
namespace App\Acf\Templates;
use App\Acf\Groups;
class FreeSection extends FieldGroup
{
public string $title = 'Free section';
public function fields(): array
{
return [
FlexibleContent::make('Components', 'components')
->thumbnails(true)
->modal([
'enabled' => true,
'col' => '4',
])
->layouts([
Groups\TextImage::make()->toLayout(),
]),
];
}
public function location(): array
{
return [
Location::where('page_template', 'template-freesection.blade.php'),
];
}
}