Skip to content

henriquebortoletto/wordpress-cmb

Repository files navigation

🚀 Sobre

Projeto desenvolvido para entender o funcionamento dos campos nativos do WordPress, com a adição do plugin cmb2.

Exemplo:

echo get_post_meta( get_the_ID(), 'chave', true );

Exemplo de um campo simples usando cmb2.

function cmb2_home() {
		$cmb = new_cmb2_box([
			'id' => 'home',
			'title' => 'Titulo',
			'object_types' => ['page'],
			'show_on' => [
				'key' => 'page-template',
				'value' => 'page-home.php'
			]
		]);

		$cmb->add_field([
			'name' => 'Campo 1',
			'id' => 'campo_1',
			'type' => 'text'
		]);

		$cmb->add_field([
			'name' => 'Campo 2',
			'id' => 'campo_2',
			'type' => 'textarea'
		]);
	}

add_action( 'cmb2_admin_init', 'cmb2_home' );

Exemplo de um loop pelos campos do cmb2.

function cmb2_home() {
	$cmb = new_cmb2_box([
		'id' => 'home',
		'title' => 'Menu da Semana',
		'object_types' => ['page'],
		'show_on' => [
			'key' => 'page-template',
			'value' => 'page-principal.php'
		]
	]);

	$pratos2 = $cmb->add_field([
		'name' => 'Repetidor',
		'id' => 'repetidor',
		'type' => 'group',
		'repeteable' => 'true',
		'options' => [
			'group_title' => 'Titulo {#}',
			'add_button' => 'Adicionar',
			'remove_button' => 'Remover',
			'sortable' => true
		],
	]);

	$cmb->add_group_field($pratos2, [
		'name' => 'Campo 1',
		'id' => 'campo_1',
		'type' => 'text'
	]);

	$cmb->add_group_field($pratos2, [
		'name' => 'Campo 2',
		'id' => 'campo_2',
		'type' => 'text'
	]);
}

Exemplo de um loop pelos campos do cmb2.

<?php $campos = get_field( 'campo' ); ?>

<?php if ( isset( $campos ) ): ?>
	<?php foreach( $campos as $campo ): ?>
		<h3><?= $campo['name']; ?></h3>
		<p><?= $campo['description']; ?></p>
	<?php endforeach; ?>
<?php else: ?>
	<p><?php esc_html_e( 'Desculpe, nenhum post corresponde ao seu critério' )?></p>
<?php endif; ?>