Registrar campos personalizados em comum para páginas, posts e customposts no WordPress


Postado em 18 de outubro de 2011 por | Categorias: Custom Post Types | Tags: | Sem comentários » | Comentar


O código abaixo deve ser colocado no arquivo functions.php do seu tema. O código abaixo registra três campos personalizados referêntes a uma data (Dia, Mês e Ano) nos posts, nas páginas e em um custompost chamado novidades.

// Registrando um campos personalizados para todas as páginas e posts do sistema
$theme_metaboxes_restritos = array(
"dia" => array (
"name"      => "dia",
"default"   => "",
"label"     => __('Selecione o dia', 'mytheme'),
"type"      => "select",
"stilo"      => "width:150px;"
),

"mes" => array (
"name"      => "mes",
"default"   => "",
"label"     => __('Selecione o mês', 'mytheme'),
"type"      => "select",
"stilo"      => "width:250px;"
),

"ano" => array (
"name"      => "ano",
"default"   => "",
"label"     => __('Selecione o ano', 'mytheme'),
"type"      => "select",
"stilo"      => "width:150px;"
)

);

// Registra um custom post select
function custom_fields_box_content_restritos() {
global $post, $theme_metaboxes_restritos;
foreach ($theme_metaboxes_restritos as $theme_metabox) {
$theme_metaboxvalue = get_post_meta($post->ID,$theme_metabox["name"],true);
if ($theme_metaboxvalue == "" || !isset($theme_metaboxvalue)) {
$theme_metaboxvalue = $theme_metabox['default'];
}

echo "\t".'<p>';
echo "\t\t".'<label for="'.$theme_metabox['name'].'"style="font-weight:bold; ">'.$theme_metabox['label'].':</label><br>'."\n";
echo "\t\t".'<select name="'.$theme_metabox['name'].'" id="'.$theme_metabox['name'].'" style="'.$theme_metabox['stilo'].'"/>'."\n";

if ($theme_metabox['name'] == "dia"){
if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";
echo "\t\t".'<option value="" />Selecione...</option>'."\n";
}
else echo "\t\t".'<option value="" selected />Selecione...</option>'."\n";

echo "\t\t".'<option value="1" />1</option>'."\n";
echo "\t\t".'<option value="2" />2</option>'."\n";
echo "\t\t".'<option value="3" />3</option>'."\n";
echo "\t\t".'<option value="4" />4</option>'."\n";
echo "\t\t".'<option value="5" />5</option>'."\n";
echo "\t\t".'<option value="6" />6</option>'."\n";
echo "\t\t".'<option value="7" />7</option>'."\n";
echo "\t\t".'<option value="8" />8</option>'."\n";
echo "\t\t".'<option value="9" />9</option>'."\n";
echo "\t\t".'<option value="10" />10</option>'."\n";
echo "\t\t".'<option value="11" />11</option>'."\n";
echo "\t\t".'<option value="12" />12</option>'."\n";
echo "\t\t".'<option value="13" />13</option>'."\n";
echo "\t\t".'<option value="14" />14</option>'."\n";
echo "\t\t".'<option value="15" />15</option>'."\n";
echo "\t\t".'<option value="16" />16</option>'."\n";
echo "\t\t".'<option value="17" />17</option>'."\n";
echo "\t\t".'<option value="18" />18</option>'."\n";
echo "\t\t".'<option value="19" />19</option>'."\n";
echo "\t\t".'<option value="20" />20</option>'."\n";
echo "\t\t".'<option value="21" />21</option>'."\n";
echo "\t\t".'<option value="22" />22</option>'."\n";
echo "\t\t".'<option value="23" />23</option>'."\n";
echo "\t\t".'<option value="24" />24</option>'."\n";
echo "\t\t".'<option value="25" />25</option>'."\n";
echo "\t\t".'<option value="26" />26</option>'."\n";
echo "\t\t".'<option value="27" />27</option>'."\n";
echo "\t\t".'<option value="28" />28</option>'."\n";
echo "\t\t".'<option value="29" />29</option>'."\n";
echo "\t\t".'<option value="30" />30</option>'."\n";
echo "\t\t".'<option value="31" />31</option>'."\n";
}

if ($theme_metabox['name'] == "mes"){
if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";
echo "\t\t".'<option value="" />Selecione...</option>'."\n";
}
else echo "\t\t".'<option value="" selected />Selecione...</option>'."\n";

echo "\t\t".'<option value="01" />janeiro</option>'."\n";
echo "\t\t".'<option value="02" />fevereiro</option>'."\n";
echo "\t\t".'<option value="03" />março</option>'."\n";
echo "\t\t".'<option value="04" />abril</option>'."\n";
echo "\t\t".'<option value="05" />maio</option>'."\n";
echo "\t\t".'<option value="06" />junho</option>'."\n";
echo "\t\t".'<option value="07" />julho</option>'."\n";
echo "\t\t".'<option value="08" />agosto</option>'."\n";
echo "\t\t".'<option value="09" />setembro</option>'."\n";
echo "\t\t".'<option value="10" />outubro</option>'."\n";
echo "\t\t".'<option value="11" />novembro</option>'."\n";
echo "\t\t".'<option value="12" />dezembro</option>'."\n";
}

if ($theme_metabox['name'] == "ano"){
$ano_seguinte = date("Y") + 1;

if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";

}
else echo "\t\t".'<option value="'.date("Y").'" selected />'.date("Y").'</option>'."\n";
echo "\t\t".'<option value="'.$ano_seguinte.'" />'.$ano_seguinte.'</option>'."\n";

}

echo "\t\t</select></p>\n";
echo "\t\t<p>".$theme_metabox['desc'].'</p>'."\n";
}
}

function custom_fields_box_projetos() {
if ( function_exists('add_meta_box') ) {
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','page','normal','high');
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','post','normal','high');
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','novidades','normal','high');
}
}

add_action('admin_menu', 'custom_fields_box_projetos');

function custom_fields_insert_restritos($pID) {
global $theme_metaboxes_restritos;
foreach ($theme_metaboxes_restritos as $theme_metabox) {
$var = $theme_metabox["name"];
if (isset($_POST[$var])) {
if( get_post_meta( $pID, $theme_metabox["name"] ) == "" )
add_post_meta($pID, $theme_metabox["name"], $_POST[$var], true );
elseif($_POST[$var] != get_post_meta($pID, $theme_metabox["name"], true))
update_post_meta($pID, $theme_metabox["name"], $_POST[$var]);
elseif($_POST[$var] == "")
delete_post_meta($pID, $theme_metabox["name"], get_post_meta($pID, $theme_metabox["name"], true));
}
}
}

add_action('wp_insert_post', 'custom_fields_insert_restritos');

Para pegar os valores dos campos personalizados dentro de posts, páginas ou customposts use o código dentro do loop do WordPress:

 //Pega os campos personalizados
 $dia = get_post_meta($post->ID, 'dia', true);
 $mes = get_post_meta($post->ID, 'mes', true);
 $ano = get_post_meta($post->ID, 'ano', true); 


Deixe um comentário

Categorias

Links

Tags

Autor do post bloginfo() Caminho do tema Campos Personalizados Categorias Codificação UTF8 Contac form 7 CSS Custom fields Custom Post Types data Dividir string explode() Formatação de datas Formatação de Hora get_ get_option() get_page_template() get_the_terms get_the_title() Hora IMG is_single() Janelas Links Lista de Categorias Lista de Posts Lista de ùltimos posts location.href Paginação Post_name Query_posts register_sidebar Sidebar the_author_nickname() the_category() the_tags() the_time() Titulo da página UFT8_encode UTF8 UTF8_decode Widgets wp_list_categories() âncoras

Copyright © 2017  |   W-Pedia – Wikipedia Wordpress BR  |  produzido por Henderson C. Torres