GoPymes's Blog

Entendiendo los campos personalizados (custom field)

custom fields

En las tablas de WordPress existe una tabla llamada posts y otra postmeta, estas dos están relacionadas pues una es el complemento de la otra. En la tabla posts tenemos campos standars como por ejemplo el ID, titulo, fecha, etc, sin embargo [label type=”label-info”]¿qué sucede si deseamos campos más personalizados como teléfono, fecha de vencimiento, precio, etc?[/label] sé que algunos están pensando en crearle más campos a la tabla posts, lo cual no es buena idea, pues te pasarás horas de horas modificando el core de WP para que pueda leer tu campo y además con una actualización de WP tus cambios quedarán en el olvido.

Tabla postmeta

Es ahí donde la tabla postmeta hace su aparición, a resolver tus dudas, pues aquí los campos personalizados de tu post entran en forma vertical y no horizontal como creías, pues sólo dispone de 4 campos claves: meta_id, post_id, meta_key y meta_value.

[table width =”70%” style =”” responsive =”true”]
[table_head]
[th_column]Campo[/th_column]
[th_column]Descripción[/th_column]
[/table_head]
[table_body]
[table_row]
[row_column]meta_id[/row_column]
[row_column]Es el identificador único de la tabla[/row_column]
[/table_row]
[table_row]
[row_column]post_id[/row_column]
[row_column]Es el ID del post al que está relacionado este campo personalizado[/row_column]
[/table_row]
[table_row]
[row_column]meta_key[/row_column]
[row_column]Es el nombre de tu campo personzalizado, por ejemplo: telefono[/row_column]
[/table_row]
[table_row]
[row_column]meta_value[/row_column]
[row_column]Es el valor de tu campo personalizado, para el ejemplo aquí sería: 987654321[/row_column]
[/table_row]
[/table_body]
[/table]

[notification type=”alert-success” close=”true” ]Me tomo el tiempo de que entiendas como internamente WP guarda estos campos porque es importante saberlo por si tienes algún problema.[/notification]

Usando el CODEX de WP

Ahora que sabemos donde WP guarda sus campos personalizados podemos aprender a usar funciones del codex para este fin. Es muy sencillo:

Crear un campos personalizado llamado “activar” para el post con ID 154:

1
<?php add_user_meta(154,'activar','si'); ?>

Actualizamos dicho campo y le ponemos de valor “no”:

1
<?php update_user_meta(154,'activar','no'); ?>

Obtenemos dicho campo personalizado, para usarlo en nuestro theme:

1
<?php echo get_user_meta(154,'activar',true); ?>

Borramos dicho campo personalizado:

1
<?php delete_user_meta(154,'activar'); ?>

Algunas Observaciones

[list]
[li type=”glyphicon-plus”]add_user_meta tiene como 4to parámetro $unique, por default viene false, si lo seteamos a true significa que el valor introducido debe ser único y si es repetido saldrá un error. Personalmente nunca me ha funcionado en true.[/li]
[li type=”glyphicon-plus”]get_user_meta, el 3er parámetro viene por default en false, si es así el valor retornado será un array, en este ejemplo yo lo seteo a true para que el valor retornado sea un string[/li]
[li type=”glyphicon-plus”]Actualmente existen muchos plugins para crear campos personalizados, te recomiendo que lo uses pues te ahorrará bastantes horas de programación[/li]
[/list]

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *