Soporte » WordPress Avanzado » Ha dejado de funcionar los Metabox

  • Hola a todos tengo un problema y por mucho que he buscado, probado y todo eso no he dado con la solución.

    Resulta que tengo creado un custom post type en esta pagina web que simula un banco de preguntas para generar exámenes, este custom post type lo he creado yo mediante programación creando un plugins para ello. Dentro le he generado un Metabox para guardar las respuestas del examen y marcar cual es la correcta.

    Pues resulta que desde hace 2 días ha dejado de funcionar, cuando publico o guardo una pregunta, el valor del metabox no se guarda en la base de datos, no se el motivo del cambio ni lo que ha podido pasar, he probado a cambiar cosas del código pero todo ha sido en vano, os dejo el código por si alguien me puede orientar por donde esta el fallo

    add_action( 'save_post', 'twp_save_meta_box' );
    function twp_save_meta_box( $post_id ) {
    	// Comprobamos si es auto guardado
    	if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    	// Comprobamos el valor nonce creado en twp_mi_display_callback()
    	if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'mi_meta_box_nonce' ) ) return;
    	// Comprobamos si el usuario actual no puede editar el post
    	if( !current_user_can( 'edit_post' ) ) return;
    	
    	// Guardamos...
    	if( isset( $_POST['respuesta1'] ) )
    		update_post_meta( $post_id, 'respuesta1', $_POST['respuesta1'] );
    	if( isset( $_POST['respuesta2'] ) )
    		update_post_meta( $post_id, 'respuesta2', $_POST['respuesta2'] );
    	if( isset( $_POST['respuesta3'] ) )
    		update_post_meta( $post_id, 'respuesta3', $_POST['respuesta3'] );
    	if( isset( $_POST['respuesta4'] ) )
    		update_post_meta( $post_id, 'respuesta4', $_POST['respuesta4'] );
    	if( isset( $_POST['respuesta'] ) )
    		update_post_meta( $post_id, 'respuesta', $_POST['respuesta'] );
    }

    La página con la que necesito ayuda: [accede para ver el enlace]

  • Debes estar registrado para responder a este debate.