tparushev/carbon-section-builder

用于使用 Carbon Fields 构建部分构建器的辅助工具。

1.0.8 2020-03-31 06:38 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:57 UTC


README

用于使用 Carbon Fields 构建部分构建器的辅助工具。

快速设置

通过命名空间扩展 Base_Section 类以创建自己的部分。你可以在 examples/ 文件夹中找到示例。

扩展部分类必须包含返回包含 Carbon_Field 的数组的 fields 方法,并设置 set_name 方法以设置部分名称。示例

class Home_Intro extends Base_Section {
	public function set_name() {
		$this->name = __( 'Home Intro2', 'crb' );
	}
	
	public function fields() {
		return array(
			Field::make( 'file', 'first_image', __( 'Image', 'crb' ) )
				->set_width( 50 ),
			Field::make( 'file', 'second_image', __( 'Image', 'crb' ) )
				->set_width( 50 ),
			Field::make( 'rich_text', 'content', __( 'Content', 'crb' ) ),
		);
	}
}

部分构建器在 Carbon Fields 容器中如下使用

use Carbon_Fields\Container\Container;
use Carbon_Section_Builder\Builder;
use Sections\Home_Intro\Home_Intro;
use Sections\Home_News\Home_News;

Container::make( 'post_meta', __( 'Page Sections' ,'text-domain' ) )
	->where( 'post_type', '=', 'page' )
	->add_fields( 
		array( Builder::make( 'crb_sections', __( 'Home Sections', 'text-domain' ) )
			->add_section( Home_Intro::make() )
			->add_section( Home_News::make() )
			->load() 
		)
	);

要在某些模板中渲染部分,请使用 Section_Renderer 类或扩展 Renderer 接口。示例

use Carbon_Section_Builder\Renderer\Sections_Renderer;

get_header();

Sections_Renderer::init( 'crb_sections' )->render();

get_footer();