Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Intentando crear metabox

Estas en el tema de Intentando crear metabox en el foro de WordPress en Foros del Web. Buenas, estoy intentando crear un metabox. He conseguido que el metabox aparezca cuando estoy creando una nueva entrada, pero lo que no consigo es que ...
  #1 (permalink)  
Antiguo 09/01/2015, 13:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 11 años, 7 meses
Puntos: 11
Intentando crear metabox

Buenas, estoy intentando crear un metabox.

He conseguido que el metabox aparezca cuando estoy creando una nueva entrada, pero lo que no consigo es que pueda guardarla.

Al guardar las entradas, los input text salen como array, y en los select sale siempre la primera opcion como la guardada y no la elegida.

¿Qué puede estar mal? Aqui mi código

Código:
//Custom Theme Settings
// La función para crear un Custom Post Type


add_action( 'add_meta_boxes', 'cd_meta_box_add' );
function cd_meta_box_add()
{
    add_meta_box( 'my-meta-box-id', 'My First Meta Box', 'cd_meta_box_cb', 'post', 'normal', 'high' );
}
?>

<?php

add_action( 'save_post', 'cd_meta_box_save' );


function cd_meta_box_save( $post_id )
{
    // Bail if we're doing an auto save
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
     
    // if our nonce isn't there, or we can't verify it, bail
    if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
     
    // if our current user can't edit this post, bail
    if( !current_user_can( 'edit_post' ) ) return;
     
    // now we can actually save the data
    $allowed = array( 
        'a' => array( // on allow a tags
            'href' => array() // and those anchors can only have href attribute
        )
    );
     
    // Make sure your data is set before trying to save it
    if( isset( $_POST['my_meta_box_text'] ) )
        update_post_meta( $post_id, 'my_meta_box_text', wp_kses( $_POST['my_meta_box_text'], $allowed ) );
		   if( isset( $_POST['my_meta_box_desarrollador'] ) )
        update_post_meta( $post_id, 'my_meta_box_desarrollador', wp_kses( $_POST['my_meta_box_desarrollador'], $allowed ) );
		 if( isset( $_POST['my_meta_box_editor'] ) )
        update_post_meta( $post_id, 'my_meta_box_editor', wp_kses( $_POST['my_meta_box_editor'], $allowed ) );
		
		 if( isset( $_POST['my_meta_box_distribuidor'] ) )
        update_post_meta( $post_id, 'my_meta_box_distribuidor', wp_kses( $_POST['my_meta_box_distribuidor'], $allowed ) );
		 if( isset( $_POST['my_meta_box_jugadores'] ) )
        update_post_meta( $post_id, 'my_meta_box_jugadores', wp_kses( $_POST['my_meta_box_jugadores'], $allowed ) );
		
			 if( isset( $_POST['my_meta_box_voces'] ) )
        update_post_meta( $post_id, 'my_meta_box_voces', wp_kses( $_POST['my_meta_box_voces'], $allowed ) );
		
		 if( isset( $_POST['my_meta_box_textos'] ) )
        update_post_meta( $post_id, 'my_meta_box_textos', wp_kses( $_POST['my_meta_box_textos'], $allowed ) );
		if( isset( $_POST['my_meta_box_lanzamiento'] ) )
        update_post_meta( $post_id, 'my_meta_box_lanzamiento', wp_kses( $_POST['my_meta_box_lanzamiento'], $allowed ) );
		
       // para select 
    if( isset( $_POST['my_meta_box_consola'] ) )
        update_post_meta( $post_id, 'my_meta_box_consola', esc_attr( $_POST['my_meta_box_consola'] ) );
		    if( isset( $_POST['my_meta_box_genero'] ) )
        update_post_meta( $post_id, 'my_meta_box_genero', esc_attr( $_POST['my_meta_box_genero'] ) );
		
		   if( isset( $_POST['my_meta_box_formato'] ) )
        update_post_meta( $post_id, 'my_meta_box_formato', esc_attr( $_POST['my_meta_box_formato'] ) );
		
			   if( isset( $_POST['my_meta_box_online'] ) )
        update_post_meta( $post_id, 'my_meta_box_online', esc_attr( $_POST['my_meta_box_online'] ) );
		
		  if( isset( $_POST['my_meta_box_pegi'] ) )
        update_post_meta( $post_id, 'my_meta_box_pegi', esc_attr( $_POST['my_meta_box_pegi'] ) );
		
         
}




function cd_meta_box_cb()
{
    // $post is already set, and contains an object: the WordPress post
    global $post;
    $values = get_post_custom( $post->ID );
	$consola = isset( $values['my_meta_box_consola'] ) ? esc_attr( $values['my_meta_box_consola'] ) : '';
	$genero = isset( $values['my_meta_box_genero'] ) ? esc_attr( $values['my_meta_box_genero'] ) : '';
	$desarrollador = isset( $values['my_meta_box_desarrollador'] ) ? $values['my_meta_box_desarrollador'] : '';
	$editor = isset( $values['my_meta_box_editor'] ) ? $values['my_meta_box_editor'] : '';
	$distribuidor = isset( $values['my_meta_box_distribuidor'] ) ? $values['my_meta_box_distribuidor'] : '';
	$formato = isset( $values['my_meta_box_formato'] ) ? esc_attr( $values['my_meta_box_formato'] ) : '';
	$jugadores = isset( $values['my_meta_box_jugadores'] ) ? $values['my_meta_box_jugadores'] : '';
	$online = isset( $values['my_meta_box_online'] ) ? esc_attr( $values['my_meta_box_online'] ) : '';
    $voces = isset( $values['my_meta_box_voces'] ) ? $values['my_meta_box_voces'] : '';
    $textos = isset( $values['my_meta_box_textos'] ) ? $values['my_meta_box_textos'] : '';
    $lanzamiento = isset( $values['my_meta_box_lanzamiento'] ) ? $values['my_meta_box_lanzamiento'] : '';
	$pegi = isset( $values['my_meta_box_pegi'] ) ? esc_attr( $values['my_meta_box_pegi'] ) : '';
     
    // We'll use this nonce field later on when saving.
    wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
    ?>
        
    <p>
        <label for="my_meta_box_consola">Consola</label>
        <select name="my_meta_box_consola" id="my_meta_box_consola">
            <option value="PS4" <?php selected( $selected, 'PS4' ); ?>>PS4</option>
            <option value="PS3" <?php selected( $selected, 'PS3' ); ?>>PS3</option>
			<option value="PSVITA" <?php selected( $selected, 'PSVITA' ); ?>>PSVITA</option>
        </select>
    </p>
	    <p>
        <label for="my_meta_box_genero">Género</label>
        <select name="my_meta_box_genero" id="my_meta_box_genero">
            <option value="PS4" <?php selected( $selected, 'PS4' ); ?>>PS4</option>
            <option value="PS3" <?php selected( $selected, 'PS3' ); ?>>PS3</option>
			<option value="PSVITA" <?php selected( $selected, 'PSVITA' ); ?>>PSVITA</option>
        </select>
    </p>
	<p>
        <label for="my_meta_box_desarrollador">Desarrollador</label>
        <input type="text" name="my_meta_box_desarrollador" id="my_meta_box_desarrollador" value="<?php echo $desarrollador; ?>" />
    </p>
	<p>
        <label for="my_meta_box_editor">Editor</label>
        <input type="text" name="my_meta_box_editor" id="my_meta_box_editor" value="<?php echo $editor; ?>" />
    </p>
	<p>
        <label for="my_meta_box_distribuidor">Distribuidor</label>
        <input type="text" name="my_meta_box_distribuidor" id="my_meta_box_distribuidor" value="<?php echo $distribuidor; ?>" />
    </p>
	<p>
        <label for="my_meta_box_formato">Formato</label>
        <select name="my_meta_box_formato" id="my_meta_box_formato">
            <option value="Físico" <?php selected( $selected, 'Físico' ); ?>>Físico</option>
            <option value="Digital" <?php selected( $selected, 'Digital' ); ?>>Digital</option>
			<option value="Físico y digital" <?php selected( $selected, 'Físico y digital' ); ?>>Físico y digital</option>
        </select>
    </p>
	<p>
        <label for="my_meta_box_jugadores">Jugadores</label>
        <input type="text" name="my_meta_box_jugadores" id="my_meta_box_jugadores" value="<?php echo $jugadores; ?>" />
    </p>
	<p>
        <label for="my_meta_box_online">¿Online?</label>
       <select name="my_meta_box_online" id="my_meta_box_online">
            <option value="Sí" <?php selected( $selected, 'Sí' ); ?>>Sí</option>
            <option value="No" <?php selected( $selected, 'No' ); ?>>No</option>
        </select>
    </p>
     <p>
        <label for="my_meta_box_voces">Voces</label>
        <input type="text" name="my_meta_box_voces" id="my_meta_box_voces" value="<?php echo $voces; ?>" />
    </p>
	<p>
        <label for="my_meta_box_textos">Textos</label>
        <input type="text" name="my_meta_box_textos" id="my_meta_box_textos" value="<?php echo $textos; ?>" />
    </p>
	<p>
        <label for="my_meta_box_lanzamiento">Lanzamiento</label>
        <input type="text" name="my_meta_box_lanzamiento" id="my_meta_box_lanzamiento" value="<?php echo $lanzamiento; ?>" />
    </p>
  <p>
        <label for="my_meta_box_pegi">Pegi</label>
       <select name="my_meta_box_pegi" id="my_meta_box_pegi">
            <option value="12" <?php selected( $selected, '12' ); ?>>12</option>
            <option value="16" <?php selected( $selected, '16' ); ?>>16</option>
			<option value="18" <?php selected( $selected, '18' ); ?>>18</option>
        </select>
    </p>
    <?php    
}
?>

Etiquetas: entradas, php, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.