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.