2016-06-16 93 views
0

我需要复制一组“自定义字段”,以便用户可以插入多个方向,搜索后没有发现任何东西,完全服务于我自己决定要做的事情,但我有一个问题:生成自定义字段不保存

该字段生成我并完美地保存了我,但它们中的内容保存未保存且不会发生,如果您可以帮助我,我感谢您!

我有一个字段来存储你想要的地址并保存它,通过输入值检测循环并生成。

代码:

//产生场

<

?php 

add_action('admin_init', 'profesional_meta_boxes'); 
function profesional_meta_boxes() { 
    add_meta_box('profesional-meta-box', __('Datos de Interés'), 'profesional_meta_box_callback', 'profesionales', 'normal', 'high', array('arg' => 'value')); 
} 
// datos internos en el metabox 
function profesional_meta_box_callback($post) { 
    //El nonce es opcional pero recomendable. Vea http://codex.wordpress.org/Function_Reference/wp_nonce_field 
    wp_nonce_field('profesionales_meta_box', 'profesionales_meta_box_noncename'); 

    //Obtenermos los meta data actuales para rellenar los custom fields 
    //en caso de que ya tenga valores 
    $post_meta = get_post_custom($post->ID); 
    ?> 

    <?php 
    //Número de direcciones 
     $current_value = '1'; 
     if(isset($post_meta['num-direction'][0])) { 
     $current_value = $post_meta['num-direction'][0]; 
     } 
    ?> 
    <div style="width: 100%; display: inline-block; vertical-align: top;"> 
     <p>Número de direcciones</p> 
     <p style="width: 100%"> 
     <?php 
      $value_dir = $current_value; 
     ?> 
     <input class="num-direction" name="num-direction" type="text" readonly value="<?php echo $current_value; ?>"> 
     <button class="add-direction">+</button> 
     <button class="remove-direction">-</button> 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> 
     <script> 
      $('.add-direction').on('click', function(ev) { 
       ev.preventDefault(); 
       var val_dir = $('.num-direction').val(); 
       val_dir++; 
       $('.num-direction').val(val_dir); 
      }); 
      $('.remove-direction').on('click', function(ev) { 
       ev.preventDefault(); 
       var val_dir = $('.num-direction').val(); 
       val_dir--; 
       $('.num-direction').val(val_dir); 
      }); 
     </script> 

     </p> 
    </div> 
    <?php for ($i=1; $i <= $value_dir; $i++) { ?> 

     <div style="border: 2px solid #ededed;padding: 20px;margin: 20px 0;"> 
     <h2 style="padding: 0 0 15px 0; font-weight: bold;">Dirección <?php echo $i; ?></h2> 

     <?php 
     //DESCRIPCIÓN 
      $name_desc_zona_trabajo = 'desc-zona-trabajo'.$i; 
      $current_value = ''; 
      if(isset($post_meta['$name_desc_zona_trabajo'][0])) { 
      $current_value = $post_meta['$name_desc_zona_trabajo'][0]; 
      } 
     ?> 
     <div style="width: 45%; display: inline-block; vertical-align: top;clear:;"> 
      <p>Descripción zona de trabajo</p> 
      <p style="width: 100%; display: inline-block;"> 
      <textarea style="width: 90%;" name="<?php echo $name_desc_zona_trabajo ?>" cols="30" rows="10"><?php echo $current_value; ?></textarea> 
      </p> 
     </div> 
     </div> 

    <?php } ?> 

<?php 

} 

//SAVE FIELDS 

<?php 
add_action('save_post', 'profesional_save_custom_fields'); 
function profesional_save_custom_fields($post_id){ 
    // Primero comprobamos que el usuario actual tenga permiso para editar el post 
    if (isset($_POST['post_type']) && 'post' == $_POST['post_type']) { 
     if (!current_user_can('edit_post', $post_id)) { 
      return; 
     } 
    } 

    // Segundo, comprobamos el nonce como medida de seguridad 
    if (!isset($_POST['profesionales_meta_box_noncename']) || ! wp_verify_nonce($_POST['profesionales_meta_box_noncename'], 'profesionales_meta_box')) { 
     return; 
    } 

    //Num direction 
    if(isset($_POST['num-direction']) && $_POST['num-direction'] != "") { 
     update_post_meta($post_id, 'num-direction', sanitize_text_field($_POST['num-direction'])); 
     //OBTENGO EL VALOR DE EL NUMERO DE DIRECCIONES PARA EL BUCLE 
     $value_dir = $_POST['num-direction']; 
    } else { 
     $value_dir = $_POST['num-direction']; 
     //$_POST['text_meta_field'] no tiene valor establecido, eliminar el meta field de la base de datos 
     if (isset($post_id)) { 
      delete_post_meta($post_id, 'num-direction'); 
     } 
    } 

    //BUCLE PARA GUARDAR DINAMICAMENTE DEPENDIENDO DE LOS CAMPOS QUE CREE EL USUARIO 
    for ($i=1; $i <= $value_dir; $i++) { 

     //Descripción Zona de Trabajo 
     //Nombre dependiendo de su posición 
     $name_desc_zona_trabajo = 'desc-zona-trabajo'.$i; 
     if(isset($_POST[$name_desc_zona_trabajo]) && $_POST[$name_desc_zona_trabajo] != "") { 
      update_post_meta($post_id, $name_desc_zona_trabajo, sanitize_text_field($_POST[$name_desc_zona_trabajo])); 
     } else { 
      //$_POST['text_meta_field'] no tiene valor establecido, eliminar el meta field de la base de datos 
      if (isset($post_id)) { 
       delete_post_meta($post_id, $name_desc_zona_trabajo); 
      } 
     } 
    } 

} 

?> 

Saludos!

回答

0

解决方案!!!!

在生成领域的部分,如何使用变量来创建领域,他不得不采取包括数组变量中的报价:

//DESCRIPCIÓN 
$name_desc_zona_trabajo = 'desc-zona-trabajo'.$i; 
$current_value = ''; 
------------------ COMILLAS ---------------------- 
if(isset($post_meta[$name_desc_zona_trabajo][0])) { 
$current_value = $post_meta[$name_desc_zona_trabajo][0]; 

相关问题