1. Go to this page and download the library: Download vinkla/extended-acf 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/ */
vinkla / extended-acf example snippets
use Extended\ACF\Fields\Image;
use Extended\ACF\Fields\Text;
use Extended\ACF\Location;
add_action('acf/init', function() {
register_extended_field_group([
'title' => 'About',
'fields' => [
Image::make('Image'),
Text::make('Title'),
],
'location' => [
Location::where('post_type', 'page')
],
]);
});
use Extended\ACF\Fields\Text;
Text::make('Title', 'heading')
->helperText('Add the text value')
->
use Extended\ACF\Fields\Email;
Email::make('Email')
->helperText('Add the employees email address.')
->
use Extended\ACF\Fields\Number;
Number::make('Age')
->helperText('Add the employees age.')
->min(18)
->max(65)
->
use Extended\ACF\Fields\Password;
Password::make('Password')
->helperText('Add the employees secret pwned password.')
->
use Extended\ACF\Fields\Range;
Range::make('Rate')
->helperText('Add the employees completion rate.')
->min(0)
->max(100)
->step(10)
->
use Extended\ACF\Fields\Text;
Text::make('Name')
->helperText('Add the employees name.')
->maxLength(100)
->
use Extended\ACF\Fields\Textarea;
Textarea::make('Biography')
->helperText('Add the employees biography.')
->newLines('br') // br, wpautop
->maxLength(2000)
->rows(10)
->
use Extended\ACF\Fields\URL;
URL::make('Website')
->helperText('Add the employees website link.')
->
use Extended\ACF\Fields\File;
File::make('Resturant Menu', 'menu')
->helperText('Add the menu **pdf** file.')
->acceptedFileTypes(['pdf'])
->library('all') // all, uploadedTo
->minSize('400 KB')
->maxSize(5) // MB if entered as int
->format('array') // id, url, array (default)
->
use Extended\ACF\Fields\Gallery;
Gallery::make('Images')
->helperText('Add the gallery images.')
->acceptedFileTypes(['jpg', 'jpeg', 'png'])
->minHeight(500)
->maxHeight(1400)
->minWidth(1000)
->maxWidth(2000)
->minFiles(1)
->maxFiles(6)
->minSize('400 KB')
->maxSize(5) // MB if entered as int
->library('all') // all, uploadedTo
->format('array') // id, url, array (default)
->previewSize('medium') // thumbnail, medium, large
->prependFiles()
->
use Extended\ACF\Fields\Image;
Image::make('Background Image')
->helperText('Add an image in at least 12000x100px and only in the formats **jpg**, **jpeg** or **png**.')
->acceptedFileTypes(['jpg', 'jpeg', 'png'])
->minHeight(500)
->maxHeight(1400)
->minWidth(1000)
->maxWidth(2000)
->minSize('400 KB')
->maxSize(5) // MB if entered as int
->library('all') // all, uploadedTo
->format('array') // id, url, array (default)
->previewSize('medium') // thumbnail, medium, large
->
use Extended\ACF\Fields\Oembed;
Oembed::make('Tweet')
->helperText('Add a tweet from Twitter.')
->
use Extended\ACF\Fields\RadioButton;
RadioButton::make('Color')
->helperText('Select the text color.')
->choices(['Forest Green', 'Sky Blue']) // ['forest_green' => 'Forest Green', 'sky_blue' => 'Sky Blue']
->default('forest_green')
->format('value') // array, label, value (default)
->
use Extended\ACF\Fields\Select;
Select::make('Color')
->helperText('Select the background color.')
->choices(['Forest Green', 'Sky Blue']) // ['forest_green' => 'Forest Green', 'sky_blue' => 'Sky Blue']
->default('forest_green')
->format('value') // array, label, value (default)
->multiple()
->nullable()
->stylized() // stylized checkbox using select2
->lazyLoad() // use AJAX to lazy load choices
->
use Extended\ACF\Fields\TrueFalse;
TrueFalse::make('Social Media', 'display_social_media')
->helperText('Select whether to display social media links or not.')
->default(false)
->stylized(on: 'Yes', off: 'No') // optional on and off text labels
->
use Extended\ACF\Fields\Link;
Link::make('Read More Link')
->format('array') // url, array (default)
->
use Extended\ACF\Fields\Taxonomy;
Taxonomy::make('Cinemas')
->helperText('Select one or more cinema terms.')
->taxonomy('cinema')
->appearance('checkbox') // checkbox, multi_select, radio, select
->format('id') // object, id (default)
->create(false) // false or true (default)
->load(true) // true or false (default)
->save(true) // true or false (default)x
->format('id'), // object or id (default)
use Extended\ACF\Fields\ColorPicker;
ColorPicker::make('Text Color')
->helperText('Add the text color.')
->default('#4a9cff')
->opacity()
->format('string') // array, string (default)
->
use Extended\ACF\Fields\DatePicker;
DatePicker::make('Birthday')
->helperText('Add the employee\'s birthday.')
->displayFormat('d/m/Y')
->format('d/m/Y')
->
use Extended\ACF\Fields\IconPicker;
IconPicker::make('Icon')
->helperText('Add the icon.')
->format('string') // array, string (default)
->tabs(['dashicons']) // [dashicons, media_library, url] (default)
->
use Extended\ACF\Fields\TimePicker;
TimePicker::make('Start Time', 'time')
->helperText('Add the start time.')
->displayFormat('H:i')
->format('H:i')
->
use Extended\ACF\Fields\DateTimePicker;
DateTimePicker::make('Event Date', 'date')
->helperText('Add the event\'s start date and time.')
->displayFormat('d-m-Y H:i')
->format('d-m-Y H:i')
->firstDayOfWeek(1) // Sunday is 0, Monday is 1, or use `weekStartsOnMonday` or `weekStartsOnSunday`
->
use Extended\ACF\Fields\GoogleMap;
GoogleMap::make('Address', 'address')
->helperText('Add the Google Map address.')
->center(57.456286, 18.377716)
->zoom(14)
->
use Extended\ACF\Fields\Accordion;
Accordion::make('Address')
->open()
->multiExpand(),
// Allow accordion to remain open when other accordions are opened.
// Any field after this accordion will become a child.
Accordion::make('Endpoint')
->endpoint()
->multiExpand(),
// This field will not be visible, but will end the accordion above.
// Any fields added after this will not be a child to the accordion.
// fields/email.php
use Extended\ACF\Fields\Email;
return Email::make('Email')->re __DIR__.'/fields/email.php';
]
]);
use Extended\ACF\Fields\FlexibleContent;
use Extended\ACF\Fields\Layout;
use Extended\ACF\Fields\Text;
FlexibleContent::make('Blocks')
->helperText('Add the page blocks.')
->button('Add Component')
->layouts([
Layout::make('Image')
->layout('block')
->fields([
Text::make('Description')
])
])
->minLayouts(1)
->maxLayouts(10)
->
use Extended\ACF\Fields\Group;
use Extended\ACF\Fields\Image;
use Extended\ACF\Fields\Text;
Group::make('Hero')
->helperText('Add a hero block with title, content and image to the page.')
->fields([
Text::make('Title'),
Image::make('Background Image'),
])
->layout('row')
->
use Extended\ACF\Fields\Message;
Message::make('Heading')
->body('George. One point twenty-one gigawatts.')
->escapeHtml(),
use Extended\ACF\Fields\Image;
use Extended\ACF\Fields\Repeater;
use Extended\ACF\Fields\Text;
Repeater::make('Employees')
->helperText('Add the employees.')
->fields([
Text::make('Name'),
Image::make('Profile Picture'),
])
->minRows(2)
->maxRows(10)
->collapsed('name')
->button('Add employee')
->paginated(10)
->layout('table') // block, row, table
->
use Extended\ACF\Fields\Tab;
Tab::make('Tab 1'),
Tab::make('Tab 2'),
Tab::make('Tab 3')
->placement('top') // top, left
->selected() // specify which tab should be selected by default
->endpoint(), // This will make a break in the tabs and create a new group of tabs
use Extended\ACF\Location;
Location::where('post_type', 'post')->and('post_type', '!=', 'post') // available operators: ==, !=
use Extended\ACF\ConditionalLogic;
use Extended\ACF\Fields\File;
use Extended\ACF\Fields\Select;
use Extended\ACF\Fields\URL;
use Extended\ACF\Fields\Textarea;
use Extended\ACF\Fields\Text;
Select::make('Type')
->choices([
'document' => 'Document',
'link' => 'Link to resource',
'embed' => 'Embed',
]),
File::make('Document', 'file')
->conditionalLogic([
ConditionalLogic::where('type', '==', 'document') // available operators: ==, !=, >, <, ==pattern, ==contains, ==empty, !=empty
]),
URL::make('Link', 'url')
->conditionalLogic([
ConditionalLogic::where('type', '==', 'link')
]),
// "and" condition
Textarea::make('Embed Code')
->conditionalLogic([
ConditionalLogic::where('type', '!=', 'document')->and('type', '!=', 'link')
]),
// use multiple conditional logic for "or" condition
Text::make('Title')
->conditionalLogic([
ConditionalLogic::where('type', '!=', 'document'),
ConditionalLogic::where('type', '!=', 'link')
]),
// conditional logic that relies on another field from a different field group
Text::make('Sub Title')
->conditionalLogic([
ConditionalLogic::where(
group: 'other-group',
name: 'enable_highlight',
operator: '==',
value: 'on',
)
]),
namespace App\Fields;
use Extended\ACF\Fields\Select as Field;
class Select extends Field
{
public function myNewSetting(string $value): static
{
$this->settings['my-new-setting'] = $value;
return $this;
}
}
namespace App\Fields;
use Extended\ACF\Fields\Field;
use Extended\ACF\Fields\Settings\HelperText;
use Extended\ACF\Fields\Settings\Required;
class OpenStreetMap extends Field
{
use HelperText;
use Required;
protected $type = 'open_street_map';
public function latitude(float $latitude): static
{
$this->settings['latitude'] = $latitude;
return $this;
}
public function longitude(float $longitude): static
{
$this->settings['longitude'] = $longitude;
return $this;
}
public function zoom(float $zoom): static
{
$this->settings['zoom'] = $zoom;
return $this;
}
}
use App\Fields\OpenStreetMap;
OpenStreetMap::make('Map')
->latitude(56.474)
->longitude(11.863)
->zoom(10)
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.