Anteriormente, falamos sobre como adicionar campos meta personalizados para taxonomias personalizadas no WordPress. Nesse artigo trouxemos a atenção para outro tema importante de como adicionar Meta Boxes Personalizadas em posts e tipos de post do WordPress. Nós escrevemos sobre um método que usa um plugin para adicionar meta boxes e painéis de escrita personalizados usando o plugin More Fields, mas saiba que o desenvolvimento do plugin parou. Neste artigo, vamos mostrar a você como Adicionar Meta Boxes Personalizadas em Posts e Tipos de Posts no WordPress.
[alert alert_type=”info” ]Nota: Este tutorial é para designers e desenvolvedores.[/alert]
Como o objetivo deste artigo é mostrar a você como criar Meta Boxes reutilizáveis no WordPress, vamos utilizar uma classe de Meta Boxes e Campos Personalizados para WordPress (CMB) de Andrew Norcross (@norcross), Jared Atchison (@jaredatch) e Bill Erickson (@billerickson). Eles combinaram seus esforços para criar uma solução poderosa para tornar nosso trabalho muito mais fácil.
A primeira coisa que você precisa fazer é baixar a classe CMB. Crie uma nova pasta e chame-a de “custom-meta-boxes-wp“. Extraia os arquivos (zip) da CMB aqui.
Agora vamos criar um arquivo PHP em branco, e chamá-lo de cmb-wp.php. Este é o arquivo que iremos usar para definir nosso plugin e criar todas as meta boxes que precisamos. Abaixo está um exemplo de conteúdo que você pode colocar neste arquivo:
<?php
/*
Plugin Name: Meta Boxes Personalizados
Plugin URI: https://wp24horas.com.br/
Description: Cria Meta Boxes personalizados para o Site.
Version: 0.1
Author: Asllan Maciel
Author URI: https://www.asllanmaciel.com.br/
License: GPL v2 or higher
License URI: License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
//Inicializando a class
function wp24h_initialize_cmb_meta_boxes() {
if ( ! class_exists( 'cmb_Meta_Box' ) )
require_once(plugin_dir_path( __FILE__ ) . 'init.php');
}
add_action( 'init', 'wp24h_initialize_cmb_meta_boxes', 9999 );
//Add Meta Boxes
function wp24h_sample_metaboxes( $meta_boxes ) {
$prefix = '_wp24h_'; // Prefixo para todos os campos
$meta_boxes[] = array(
'id' => 'test_metabox',
'title' => 'Metabox de Teste',
'pages' => array('page'), // tipo de post (Aqui definimos para somente páginas)
'context' => 'normal',
'priority' => 'high',
'show_names' => true, // Mostrar nome dos campos à esquerda
'fields' => array(
array(
'name' => 'Texto',
'desc' => 'Descrição do Campo (optional)',
'id' => $prefix . 'test_text',
'type' => 'text'
),
),
);
return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'wp24h_sample_metaboxes' );
O exemplo acima é muito básico. Ele só adiciona uma amostra de meta box teste com um campo de texto em “páginas”. Como pode ver, você tem a opção de personalizar o tipo de post e muito mais. A classe CMB suporta os seguintes tipos de campo:
- text
- text small
- text medium
- text money
- date picker
- date picker (unix timestamp)
- date time picker combo (unix timestamp)
- time picker
- color picker
- textarea
- textarea small
- textarea code
- select
- radio
- radio inline
- taxonomy radio
- taxonomy select
- checkbox
- multicheck
- WYSIWYG/TinyMCE
- Image/file upload
Aqui está a página wiki que irá mostrar-lhe como adicionar todos os tipos de campo. Há também um arquivo example-functions.php que você pode usar como referência.
Assim que estiver pronto, faça o upload da pasta para sua pasta de plugins. Agora, você pode facilmente exibir esses campos em seu loop usando a função get_post_meta(). Aqui está um tutorial se você quiser exibir campos personalizados fora do loop.
A classe CMB é incrível, nós a utilizamos aqui no [wp24]. Se você é um designer/desenvolvedor, então você vai achar que ela é realmente fácil de usar e que vai ajudá-lo a melhorar o seu fluxo de trabalho.
Esperamos que este tutorial tenha ajudado a Adicionar Meta Boxes Personalizadas em Posts e Tipos de Posts no WordPress.





















