• He creado un custom post type y le he asignado codigo html para que se vean inputs y demas obviamente.
    Pero cuando hago click en publish, esta informacion que es nombre y apellido por ejemplo no se guarda…
    Quisiera saber como agrego a la base de datos los campos que quiero..les dejo mi codigo:

    add_action ('init', 'crear_post_type',0);function crear_post_type()  {
        $labels = array(
         'name' =>('Estudiantes'),
         'singular_name' =>('Estudiantes'),
         'all_items' =>('Todos los Estudiantes'),
         'add_new' =>('Nuevo Estudiante'),
         'add_new_item' =>('Añadir nuevo Estudiante'),
         'edit_item' =>('Editar Estudiante'),
         'new_item' =>('Nuevo Estudiante'),
         'view_item' =>('Ver Estudiantes'),
         'search_items' =>('Buscar Estudiante'),
         'not_found' =>('No se han encontrado Estudiantes'),
         'not_found_in_trash' =>('No hay Estudiantes elminados'),
         'parent_item_colon' => ''
        );
    
        $args = array(
         'labels' => $labels,
         'public' => true,
         'publicly_queryable' => true,
         'show_ui' => true,
         'query_var' => true,
         'rewrite' => true,
         'capability_type' => 'post',
         'hierarchical' => false,
         'menu_position' => 5,
         'supports' => array('title', 'editor', 'author', 'thumbnail'     ,'excerpt','comments','Nombre')
        );
        register_post_type('Estudiantes', $args);
      }
      // Acción que llama a la función que añade el metabox para los estudiante
    add_action( 'add_meta_boxes', 'add_estudiantes_metaboxes' );
      function add_estudiantes_metaboxes()
    {
    
       // ID metabox, título metabox, función que muestra los atributos, tipo de post, zona metabox, prioridad
       add_meta_box('campos estudiante', 'estudiantes','est_meta_box_callback' );
    }
    
    function est_meta_box_callback( $post ) {
       ?>
      <?php  {  ?>
        <!--Nombre -->
         <p>
             <label class="label" for="text_meta_field"> Nombre</label>
             <input  name="text_meta_field" id="nombre" type="text" value=""/>
         </p>
        <!--Apellido -->
            <label class="label" for="text_meta_field"> Apellido</label>
            <input  name="text_meta_field" id="apellido" type="text" value=""/>
    
        <!--Imagen de perfil -->
        <br />
        <?php include ('uploadperfil.php');?>
        <form enctype="multipart/form-data" action="uploadperfil.php" method="POST">
    
        <input name="uploadedfile" type="file"/>
        <input type="button" name='upload' value="Subir archivo"/>
    
    </form>
    <?php } }?>
    add_action('save_post', 'save_estudiante_meta', 1, 2);
    function save_estudiante_meta( $post_id ){
    
    if( isset( $_POST['Nombre'] ) )
            add_post_meta( $post_id, 'Nombre',  $_POST['Nombre'],wp_kses( $_POST['Nombre']   ));
    if( isset( $_POST['Apellido'] ) )
            add_post_meta( $post_id, 'Apellido',$_POST['Apellido'],wp_kses( $_POST['Apellido']   ));
    
    }

    osea debo configurar un boton html con codigo en el onclick para guardar estos datos o se guardan con el publish de la entrada?

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Tienes errores básicos (no te ofendas porque utilice esta palabra) de procesamiento de formularios en PHP.

    Por ejemplo, tienes el input dónde se pone el nombre utilizando name="text_meta_field"" y luego intentas obtener su valor en $_POST['Nombre'].

    Los valores de los input se recibien en PHP en la variable $_POST[‘atributo_name_del_input’], o si el formulario utiliza método get, en $_GET['atributo_name_del_input'].

    Por tanto, tu input para el nombre se recibiría en $_POST['text_meta_field']. Pero tendrás más problemas porque tienes dos input con el mismo name="text_meta_field"".

    Te recomiendo primero empezar con lo básico de formularios y PHP y luego ya ir entrando en temas más complicados.

    Iniciador del debate giulichajari

    (@giulichajari)

    Muchas gracias por responder.. igualmente ya lo corregi y ya tengo funcionando el guardado en post meta en la bd…

    lo que no se es como visualizar los datos de los estudiantes y como editarlos.. estuve leyendo lo de single.php y archive.php.-.

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘¿Donde se guardan los custom fields?’ está cerrado a nuevas respuestas.