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); 

Campos personalizados no wordpress (custom fields)


Postado em 30 de setembro de 2010 por | Categorias: Posts | Tags: , , | 2 Comentários » | Comentar


Os campos personalizados funcionam através dos campos nome e valor, encontrados logo abaixo do campo resumo dentro da tela de publicação de post do WordPress. Você pode adicionar varios campos personalizados dentro de um post, servem para guardar url de imagens, textos adicionais, etc… Para esses campos funcionarem você tem que chamar todos no loop do seu código.

Para chamar os campos personalizados na página do psot, usamos: get_post_meta($post_id, $key, $single);

Os parâmetros desta entrada são os seguintes:

$post_id
Este é o ID do artigo que guarda a informação contida na meta-data.
A maioria das vezes é chamado pela função $post->ID.

$key
A Key é a chave que contem o nome do campo meta value.

$single
Este campo pode tanto ser falso como verdadeiro (true/false).
Se for verdadeiro, irá resultar na chamada de um único resultado em forma de string.
Se for falso ou não for específicado, a função irá retornar uma array do campo personalizado. Este passo é importante se fizer uso de diferentes $keys com o mesmo nome.

Imaginemos a situação em que temos um campo chave com o título “Imagem” e onde o valor é o endereço dessa mesma imagem. Para apresentarmos essa mesma imagem, utilizariamos o seguinte código:

<?php $imagem = get_post_meta($post->ID, ‘Imagem’, true); ?>
<img src=”<?php echo $imagem; ?>” alt=”" />

Código para testar se existe o campo personalizado image:

<!-- DISPLAYS THE IMAGE URL SPECIFIED IN THE CUSTOM FIELD -->
 <?php if ( get_post_meta($post->ID,'image', true) ) { ?>

 <img src="<?php echo get_post_meta($post->ID, "image", $image = true); ?>" alt="<?php the_title(); ?>" style="top: <?php echo get_post_meta($post->ID, "top", $image = true); ?>px !important; left: <?php echo get_post_meta($post->ID, "left", $image = true); ?>px !important; margin-bottom:10px; margin-top:10px;" />

 <?php } ?>
 <!-- END DISPLAYS THE IMAGE URL SPECIFIED IN THE CUSTOM FIELD -->

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