lumenpress / acf
此包最新版本(v0.2.2)没有可用的许可信息。
v0.2.2
2017-11-06 12:50 UTC
Requires
- php: >=5.6.4
- lumenpress/nimble: ^0.2.0
Requires (Dev)
- advanced-custom-fields-pro/advanced-custom-fields-pro: ^5.6.2
- composer/installers: ^1.4
- kint-php/kint: ^2.1
- lumenpress/testing: ~0.2.0
- phpunit/phpunit: >=5.7
- vlucas/phpdotenv: ^2.4
This package is not auto-updated.
Last update: 2024-09-25 01:43:55 UTC
README
安装
composer require lumenpress/acf
将 config/acf.php
文件复制到您的本地配置文件夹,并在 bootstrap/app.php 中注册配置 + 服务提供者
$app->configure('acf'); $app->register(LumenPress\ACF\ServiceProvider::class);
模式
字段组
创建字段组
use LumenPress\ACF\Schema; use LumenPress\ACF\Models\FieldGroup; Schema::create($groupKey, function (FieldGroup $group) { $group->title('Title'); // required $group->location('post_type', 'page'); // required });
$groupKey
应该是唯一的,通常以 group_
作为前缀。
Schema::create('group_599d8daf5e131', function (FieldGroup $group) { $group->title('Title'); // required $group->location('post_type', 'page'); // required });
如果您不以 group_
开头,密钥将使用 md5 加密。
Schema::create('home_page', function (FieldGroup $group) { $group->title('Home'); // required $group->location('post_type', 'page'); // required }); // algorithm echo 'group_'.substr(hash('md5', 'home_page'), 8, 16); // group_3f239af6fe3db5c0
可用的字段组设置
$group->title('string')
必需$group->location($param, $operator, $value)
必需$group->position('normal')
$group->style('default')
$group->label_placement('top')
$group->instruction_placement('label')
$group->hide_on_screen('metabox')
$group->description('string')
$group->order(0)
$group->active(true)
true
或false
位置
参数
- 帖子
- post_type
- post_template
- post_status
- post_format
- post_category
- post_taxonomy
- post
- 页面
- page_template
- page_type
- page_parent
- page
- 用户
- current_user
- current_user_role
- user_form
- user_role
- 表单
- 分类法
- 附件
- 评论
- 小工具
- 导航菜单
- 导航菜单项
- 选项页面
运算符
==
或 !=
$group->location($param, $value); // operator is '=='; $group->location($param, $operator, $value);
A 和 B
$group->location( [$param, $operator, $value], // A [$param, $operator, $value] // B ); // another $group->location($param, $operator, $value) // A ->location($param, $operator, $value); // B
A 或 B
$group->location($param, $operator, $value) // A ->orLocation($param, $operator, $value); // B
(A 和 B) 或 (C 和 D)
$group->location( [$param, $operator, $value], // A [$param, $operator, $value] // B )->orLocation( [$param, $operator, $value], // C [$param, $operator, $value] // D ); // another $group->location($param, $operator, $value) // A ->location($param, $operator, $value); // B ->orLocation($param, $operator, $value) // C ->location($param, $operator, $value); // D
重命名/删除字段组
要重命名现有的字段组,请使用 rename
方法
Schema::rename($oldKey, $newKey);
要删除现有的字段组,您可以使用 drop
方法
Schema::drop($groupKey);
字段
创建字段
Schema::create($groupKey, function (FieldGroup $group) { $group->title('Demo'); // required $group->location('post_type', 'post'); // required $group->fields(function($field) { $field->text('uniqid_name')->label('Label'); }); });
可用的字段类型
// Basic $field->text('text')->label('Text'); $field->textarea('textarea')->label('Textarea'); $field->number('number')->label('Number'); $field->email('email')->label('Email'); $field->url('url')->label('URL'); $field->password('password')->label('Password'); // Content $field->wysiwyg('wysiwyg'); $field->oembed('oembed'); $field->image('image'); $field->file('file'); $field->gallery('gallery'); // Choice $field->true_false('true_false'); $field->checkbox('checkbox')->choices(['value1', 'value2']); $field->radio('radio')->choices(['value1', 'value2']);; $field->select('select')->choices(['value1', 'value2']);; // Relational $field->link('link'); $field->page_link('page_link'); $field->post_object('post_object'); $field->relationship('relationship'); $field->taxonomy('taxonomy'); $field->user('user'); // JQuery $field->google_map('google_map'); $field->date_picker('date_picker'); $field->date_time_picker('date_time_picker'); $field->time_picker('time_picker'); $field->color_picker('color_picker'); // Layout $field->tab('tab'); $field->message('Message')->content('Content'); $field->group('group')->fields(function($field) { $field->text('text'); $field->image('image'); }); $field->repeater('repeater')->fields(function($field) { $field->text('text')->label('Text'); $field->image('image'); }); $field->flexible('flexible')->layouts(function($flexible) { $flexible->layout('layout1')->label('Layout 1')->fields(function($field) { $field->textarea('textarea')->label('Textarea'); }); $flexible->layout('layout2')->label('Layout 2')->fields(function($field) { $field->text('text')->label('Text'); }); }); // friendly $field->clone('clone')->fields('group'); $field->clone('clone')->fields('group.text'); $field->clone('clone')->fields('group.text', 'group.textarea'); // strict $field->clone('clone')->fields('group_1b8797f52e1e7731'); $field->clone('clone')->fields('field_599ec2068e143'); $field->clone('clone')->fields('field_599ec2068e143', 'field_599ec6186b36b');
修改字段
更新字段属性
Schema::group($groupKey, function (FieldGroup $group) { $group->fields(function($field) { $field->text('text')->label('Text2'); }); });
重命名字段
Schema::group($groupKey, function (FieldGroup $group) { $group->fields(function($field) { $field->rename('oldname', 'newname'); }); });
删除字段
Schema::group($groupKey, function (FieldGroup $group) { $group->fields(function($field) { // single field $field->drop('text'); // multiple fields $field->drop('text', 'textarea'); // all $field->dropAll(); }); });
模型
use LumenPress\ACF\Concerns\HasFields; class Post extends \LumenPress\Nimble\Models\Post { use HasFields; }
插入
$post = new Post; $post->title = 'Title1'; $post->type = 'post'; $post->acf->schema('home_fields'); $post->acf->text = 'Text'; $post->acf->textarea = 'Textarea'; $post->save();
更新
$post = Post::find(2); $post->acf->text = 'Text2'; $post->acf->textarea = 'Textarea2'; $post->save();
删除
$post = Post::find(2); unset($post->acf->text); unset($post->acf->textarea); $post->save();
构建器
$post = Post::find(2); $builder = $post->acf();
检索结果
$post->acf('abc')->value(); $post->acf()->text('abc')->value();
插入值
$post->acf()->text('abc')->insertValue('Value 1');
更新值
$post->acf()->text('abc')->updateValue('Value 2');
删除值
$post->acf('abc')->delete(); $post->acf()->text('abc')->delete();