Я думаю, что на самом деле было бы неплохо сохранить как настраиваемое поле, только то, которое не отображается в поле настраиваемого поля. Последнее можно сделать, добавив «_» в начале имени настраиваемого поля (то есть «_my_custom_field» вместо «my_custom_field».
Вот пример функции для сохранения данных мета-бокса. Я изменил имена, чтобы они соответствовали приведенному выше коду.
<?php
function blc_save_postdata($post_id){
// Verify this came from the our screen and with proper authorization,
// because save_post can be triggered at other times
if ( !wp_verify_nonce( $_POST['blc_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
// Verify if this is an auto save routine. If it is our form has not been submitted, so we dont want
// to do anything
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_id;
// Check permissions to edit pages and/or posts
if ( 'page' == $_POST['post_type'] || 'post' == $_POST['post_type']) {
if ( !current_user_can( 'edit_page', $post_id ) || !current_user_can( 'edit_post', $post_id ))
return $post_id;
}
// OK, we're authenticated: we need to find and save the data
$blc = $_POST['backlink_url'];
// save data in INVISIBLE custom field (note the "_" prefixing the custom fields' name
update_post_meta($post_id, '_backlink_url', $blc);
}
//On post save, save plugin's data
add_action('save_post', array($this, 'blc_save_postdata'));
?>
И так и должно быть. Я использовал эту страницу в качестве ссылки: http://codex.wordpress.org/Function_Reference/add_meta_box