Tengo un metabox que debe unir dos datos, eso lo hace correctamente. El problema es que debo PUBLICAR y luego ACTUALIZAR el mismo post para que me tome los datos.
Si solo PUBLICO no me aparecen los cambios.
Código PHP:
<?php
// Registro metabox
function add_audio_settings_box() {
add_meta_box('audio_settings_box', __('Audio Settings', 'pbpanel'), 'show_audio_settings_box', 'post', 'normal', 'high');
}
add_action('add_meta_boxes', 'add_audio_settings_box');
// Metabox
function show_audio_settings_box($object) {
wp_nonce_field(basename( __FILE__ ), 'audio_settings_box_nonce'); ?>
<p>
<label for="audio_url"><?php echo __('Seleccionar Programa', 'pbpanel'); ?>:<br></label>
<!-- Programas-->
<p><input type="radio" name="url" id="url" value="http://miweb.com/programa_1/">Programa 1</p>
<p><input type="radio" name="url" id="url" value="http://miweb.com/programa_2/">Programa 2</p>
<!-- Nombre del programa (por ejemplo musica.mp3 ) -->
<p>Ingresar el nombre del archivo de audio (inclido .mp3): <input type="text" name="archivo" id="archivo"> </p>
<!-- Union de url + archivo (Ejemplo: [url]http://miweb.com/programa_1/musica.mp3[/url] -->
<?php $all_url=esc_attr(get_post_meta($object->ID, 'url', true)).esc_attr(get_post_meta($object->ID, 'archivo', true)); ?>
<!-- Guardo esa variable en audio_url -->
<input type="hidden" name="audio_url" id="audio_url" value="<?php echo $all_url ?>">
</p>
<?php
}
// Guardo los valores del metabox
function save_audio_settings_box($post_id) {
// Verifico nonce
if (!isset($_POST['audio_settings_box_nonce']) || !wp_verify_nonce($_POST['audio_settings_box_nonce'], basename( __FILE__ ))) return;
// Verifico permisos
if (!current_user_can('edit_post')) return;
// Data
foreach ($_POST as $key => $value) {
$exist_value = get_post_meta($post_id, $key, true);
if ($value && $exist_value == '') {
add_post_meta($post_id, $key, $value, true);
}
elseif ($value && $value != $exist_value) {
update_post_meta($post_id, $key, $value, $exist_value);
}
elseif ($value == '' && $exist_value) {
delete_post_meta($post_id, $key, $exist_value);
}
}
}
add_action('save_post', 'save_audio_settings_box');
?>
No puedo detectar que me falta...
GRACIAS
*