Advertisement
miriamdepaula

WordPress Custom Meta Boxes

Aug 10th, 2011
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.13 KB | None | 0 0
  1. //Exemplo de uso da Classe Custom Meta Boxes - Baixe a classe em: http://www.deluxeblogtips.com/2011/06/update-meta-box-script-v32-is-available.html
  2.  
  3. $prefix = 'cms_'; //prefixo
  4.  
  5. $meta_boxes = array();
  6.  
  7. // first meta box
  8. $meta_boxes[] = array(
  9.     'id' => 'dados_pessoais', // id do meta box id, precisa ser unico
  10.     'title' => 'Dados Pessoais', //titulo do meta box
  11.     'pages' => array('post', 'page', 'slider'),// post types, custom post types, o padrao é array('post'); OPCIONAL
  12.     'context' => 'normal', // onde o meta box vai aparecer: normal (padrao), advanced, side; OPCIONAL
  13.     'priority' => 'high', // ordem do meta box: high (padrao), low; OPCIONAL
  14.  
  15.     'fields' => array( // lista de campos
  16.        
  17.         array(
  18.             'name' => 'Nome completo', // nome do campo
  19.             'desc' => '<em>informe o seu nome completo</em>',// descrição do campo; aceita html, OPCIONAL
  20.             'id' => $prefix . 'nome_completo', // id do campo, o meta key
  21.             'type' => 'text', // tipo do campo; "text" para campo texto
  22.             'std' => 'Ana Maria',// valor padrao, OPCIONAL
  23.             'style' => 'width: 100px', // estilo customizado para o campo, OPCIONAL
  24.             'validate_func' => 'check_name' // funcao para validaçao do campo, criada abaixo, em RW_Meta_Box_Validate class
  25.         ),
  26.  
  27.         array(
  28.             'name' => 'Data de Nascimento',
  29.             'id' => $prefix . 'data_nascimento',
  30.             'type' => 'date',// tipo do campo: date
  31.             'format' => 'd MM, yy'// formato da data, padrao "yy-mm-dd". OPCIONAL. Veja mais formatos em: http://goo.gl/po8vf
  32.         ),
  33.         array(
  34.             'name' => 'Sexo',
  35.             'id' => $prefix . 'sexo',
  36.             'type' => 'radio', // tipo do campo: radio box
  37.             'options' => array( // array de keys => par de valores para opções radio
  38.                 'm' => 'Masculino',
  39.                 'f' => 'Feminino'
  40.             ),
  41.             'std' => 'm', //valor padrao selecionado
  42.             'desc' => '<em>Informe o sexo</em>'
  43.         ),
  44.         array(
  45.             'name' => 'Biografia',
  46.             'desc' => '<em>Fale um pouco sobre você</em>',
  47.             'id' => $prefix . 'bio',
  48.             'type' => 'textarea',// tipo do campo: textarea
  49.             'std' => '',
  50.             'style' => 'width: 200px; height: 100px' //custom styles
  51.         ),
  52.         array(
  53.             'name' => 'Onde você vive?',
  54.             'id' => $prefix . 'local',
  55.             'type' => 'select',// tipo do campo: select box
  56.             'options' => array( // array de key => par de valores para select box
  57.                 'usa' => 'USA',
  58.                 'br' => 'Brasil'
  59.             ),
  60.             'multiple' => true, // "select multiple", OPCIONAL. Padrão é false.
  61.             'std' => array('usa'),  // valor padrao, pode ser string (single value) ou array (para ambos, single and multiplos valores)
  62.             'desc' => '<em>Selecione o local</em>'
  63.         ),
  64.         array(
  65.             'name' => 'Sobre o WordPress',// checkbox
  66.             'id' => $prefix . 'love_wp',
  67.             'type' => 'checkbox',
  68.             'desc' => 'Eu amo o WordPress'
  69.         )
  70.     )
  71. );
  72.  
  73. // segundo meta box
  74. $meta_boxes[] = array(
  75.     'id' => 'infos_adicionais',
  76.     'title' => 'Informações adicionais',
  77.     'pages' => array('post', 'film', 'slider'),
  78.  
  79.     'fields' => array(
  80.         array(
  81.             'name' => 'O que você acha sobre o WordPress?',
  82.             'id' => $prefix . 'sobre_wp',
  83.             'type' => 'wysiwyg', //Tipo do campo: WYSIWYG editor
  84.             'std' => '<b>Ele é maravilhoso!</b>',
  85.             'desc' => '',
  86.             'style' => 'width: 300px; height: 400px'//tamanho do campo editor
  87.         ),
  88.         array(
  89.             'name' => 'Envie um arquivo',
  90.             'desc' => '<em>Use este campo para enviar um arquivo</em>',
  91.             'id' => $prefix . 'arquivo',
  92.             'type' => 'file' // Tipo do campo: file upload
  93.         ),
  94.         array(
  95.             'name' => 'Imagens',
  96.             'desc' => '<em>Use este campo para enviar imagens</em>',
  97.             'id' => $prefix . 'imagens',
  98.             'type' => 'image' // Tipo do campo: image upload
  99.         )
  100.     )
  101. );
  102.  
  103. //terceiro meta box
  104. $meta_boxes[] = array(
  105.     'id' => 'pesquisa',
  106.     'title' => 'Pesquisa',
  107.     'pages' => array('post', 'loja', 'page'),
  108.  
  109.     'fields' => array(
  110.         array(
  111.             'name' => 'Sua cor favorita',
  112.             'id' => $prefix . 'cor',
  113.             'type' => 'color' // Tipo do campo: color
  114.         ),
  115.         array(
  116.             'name' => 'Seu hobby',
  117.             'id' => $prefix . 'hobby',
  118.             'type' => 'checkbox_list', // Tipo do campo: checkbox list
  119.             'options' => array(                     // opções do checkbox, em key => value (key não pode conter espaços)
  120.                
  121.                 'leitura' => 'Livros e Revistas',
  122.                 // chame assim: $checkbox_list = get_post_meta(get_the_ID(), 'meta_name', false);
  123.                 'esporte' => 'Ginástica, Box'
  124.                 // e use: if (in_array($checkbox_list['leitura']) {// faça algo aqui...}
  125.             ),
  126.             'desc' => '<em>O que você faz no seu tempo livre</em>'
  127.         ),
  128.         array(
  129.             'name' => 'Que horas você acorda?',
  130.             'id' => $prefix . 'acorda',
  131.             'type' => 'time', // Tipo do campo: time
  132.             'format' => 'hh:mm:ss' // Formato, padrão: hh:mm. OPCIONAL. Veja mais formatos aqui: http://goo.gl/hXHWz
  133.         )
  134.     )
  135. );
  136.  
  137. //inclua a Classe aqui
  138. require_once('metabox/meta-box-3.2.class.php');
  139.  
  140. //aqui é onde se criam os meta boxes ....
  141. foreach ($meta_boxes as $meta_box) {
  142.     new RW_Meta_Box($meta_box);
  143. }
  144.  
  145.  
  146. /**
  147.  * Validation class
  148.  * Define ALL validation methods inside this class
  149.  * Use the names of these methods in the definition of meta boxes (key 'validate_func' of each field)
  150.  */
  151. class RW_Meta_Box_Validate {
  152.     function check_name($text) {
  153.         if ($text == 'Anh Tran') {
  154.             return 'He is Rilwis';
  155.         }
  156.         return $text;
  157.     }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement