Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/04/2015, 13:43
Avatar de ArturoGallegos
ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: Metabox no guarda al Publicar

Lo pase desapercibido a primera vista pero ahora que lo reviso veo esto

Código PHP:
Ver original
  1. <!-- Union de url + archivo (Ejemplo: [url]http://miweb.com/programa_1/musica.mp3[/url] -->
  2.     <?php $all_url=esc_attr(get_post_meta($object->ID, 'url', true)).esc_attr(get_post_meta($object->ID, 'archivo', true));    ?>
  3.            
  4.     <!-- Guardo esa variable en audio_url -->  
  5.     <input type="hidden" name="audio_url" id="audio_url" value="<?php echo $all_url ?>">

Resulta bastante obvio y evidente que jamas consegiras guardar esos valores unidos al publicar ya que aun no existen en la base de datos, al actualizar ya existen y por eso funciona la union.

Tienes dos opciones
1.- usa javascript para unir los campos y asignarlo al tercer campo donde los quieres guardar unidos.
2.- deja de usar esto
Código PHP:
Ver original
  1. foreach ($_POST as $key => $value) {
  2.         $exist_value = get_post_meta($post_id, $key, true);
  3.         if ($value && $exist_value == '') {
  4.             add_post_meta($post_id, $key, $value, true);
  5.         }
  6.         elseif ($value && $value != $exist_value) {
  7.             update_post_meta($post_id, $key, $value, $exist_value);
  8.         }
  9.         elseif ($value == '' && $exist_value) {
  10.             delete_post_meta($post_id, $key, $exist_value);
  11.         }
  12.     }

En su lugar usa algo como
Código PHP:
Ver original
  1. if(isset($_POST['campo']) && !empty($_POST['campo'])){
  2. // guardas el valor que este en el tercer campo, este caso seria cuando actualizas un post
  3. }else{
  4. // haces la union de los dos primeros campos y lo guardas en el tercer campo ** esto seria para cuando crear un post
  5. }