Aunque debería tener que agregar alguna validación, esta acción no parece ser complicada para la versión actual de WordPress.
Básicamente, necesita dos pasos para agregar un campo personalizado a un tipo de publicación personalizado:
- Crea un metabox que contenga tu campo personalizado
- Guarda tu campo personalizado en la base de datos
Estos pasos se describen globalmente aquí: enlace
Ejemplo:
Agregue un campo personalizado llamado "función" a un tipo de publicación personalizado llamado "prefix-teammembers".
Primero agrega el metabox:
function prefix_teammembers_metaboxes( ) {
global $wp_meta_boxes;
add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high');
}
add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
Si agrega o edita un "prefix-teammembers", se activa el add_meta_boxes_{custom_post_type}
hook. Consulte enlace para conocer la función add_meta_box()
. En la llamada anterior de add_meta_box()
es prefix_teammembers_metaboxes_html
, una devolución de llamada para agregar su campo de formulario:
function prefix_teammembers_metaboxes_html()
{
global $post;
$custom = get_post_custom($post->ID);
$function = isset($custom["function"][0])?$custom["function"][0]:'';
?>
<label>Function:</label><input name="function" value="<?php echo $function; ?>">
<?php
}
En el segundo paso tienes tu campo personalizado a la base de datos. Al guardar el save_post_{custom_post_type}
el gancho se activa (desde v 3.7, vea: enlace ). Puede enganchar esto para guardar su campo personalizado:
function prefix_teammembers_save_post()
{
if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new?
global $post;
update_post_meta($post->ID, "function", $_POST["function"]);
}
add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );