Introducao aos campos personalizados WordPress
Saiba mais sobre desenvolvimento WordPress profissional na WPPoland. Os campos personalizados (Custom Fields) são uma das funcionalidades mais poderosas do WordPress. Permitem armazenar dados adicionais com cada artigo, página ou tipo de conteúdo. Por exemplo: preço de produto, data de evento, endereco de imovel, tudo pode ser armazenado como metadados dé artigo.
Fundamentos: get_post_meta()
A função get_post_meta() é o alicerce do trabalho com campos personalizados:
// Obter valor único
$value = get_post_meta($post_id, 'meta_key', true);
// Obter array de valores
$values = get_post_meta($post_id, 'meta_key', false);
// Obter todos os metadados do artigo
$all_meta = get_post_meta($post_id);
Parametros
| Parametro | Tipo | Descrição |
|---|---|---|
$post_id | int | ID do artigo |
$key | string | Nome da chave meta |
$single | bool | true = string, false = array |
Exibir campos personalizados no tema
No loop WordPress
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php
$price = get_post_meta(get_the_ID(), 'product_price', true);
if ($price) : ?>
<p class="price"><?php echo esc_html($price); ?> EUR</p>
<?php endif; ?>
<?php endwhile; endif; ?>
Fora do loop
<?php
$post_id = 42;
$author_name = get_post_meta($post_id, 'custom_author', true);
echo esc_html($author_name);
?>
Segurança: Sempre escape dados
Nunca exiba metadados em bruto sem escapar:
// Mau - vulneravel a XSS
echo get_post_meta($post_id, 'user_input', true);
// Bom - seguro
echo esc_html(get_post_meta($post_id, 'user_input', true));
// Para URLs
echo esc_url(get_post_meta($post_id, 'website_url', true));
// Para atributos HTML
echo esc_attr(get_post_meta($post_id, 'css_class', true));
Guardar campos personalizados
// Adicionar ou atualizar metadados
update_post_meta($post_id, 'meta_key', 'meta_value');
// Adicionar (permite multiplos valores com a mesma chave)
add_post_meta($post_id, 'meta_key', 'meta_value');
// Eliminar
delete_post_meta($post_id, 'meta_key');
Trabalhar com ACF (Advanced Custom Fields)
O ACF simplifica a criação e exibicao de campos personalizados:
// ACF - API mais simples
$price = get_field('product_price');
$image = get_field('hero_image');
// No loop
the_field('product_description');
// Dé um artigo específico
$value = get_field('field_name', $post_id);
Desempenho
O WordPress cacheia automáticamenté os metadados. Multiplas chamadas a get_post_meta() no mesmo artigo não geram consultas adicionais a base de dados.
// Otimizacao de consultas com meta_query
$args = array(
'post_type' => 'product',
'meta_query' => array(
array(
'key' => 'product_price',
'value' => 100,
'compare' => '>=',
'type' => 'NUMERIC'
)
)
);
$query = new WP_Query($args);
Integração com Gutenberg
Em 2026 os campos personalizados podem ser integrados com o editor de blocos:
// Registar meta para uso na REST API e Gutenberg
register_post_meta('post', 'product_price', array(
'show_in_rest' => true,
'single' => true,
'type' => 'number',
'sanitize_callback' => 'absint',
));
Resumo
Os campos personalizados são uma parte fundamental do desenvolvimento WordPress. Quer usé o nativo get_post_meta() ou o ACF, lembre-se de tres regras: escape sempré os dados de saida, validé os dados de entrada e tire partido do caching integrado do WordPress.


