Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/10/2012, 14:51
Avatar de Dg4
Dg4
 
Fecha de Ingreso: mayo-2003
Ubicación: chile
Mensajes: 112
Antigüedad: 21 años, 6 meses
Puntos: 0
Pregunta Verificar campos?

Estimados.
Primero no se mucho de PHP pero trato de aprender, y estoy creando un themes donde ingresé uno conocido que es para "empleos", o sea crear un blog normal pero que tenga la posibilidad de ingresar "ofertas laborales", (por si alguien tiene un themes o plugin que realice esta posibilidad y probarlo?).
Bueno la verdad que veo mi themes sin problemas y esta todo OK, pero lo que no puedo corregir que al hacer "guardar" me guarda los campos aunque estén todos vacíos, y aparece en la Web una nueva oferta laboral pero "vacía"....
No sé si tendrá que ver este código:

Código PHP:
<?php
$prefix 
'wtf_';

$meta_box = array(
    
'id' => 'jobmeta',
    
'title' => 'Job details',
    
'page' => 'job',
    
'context' => 'normal',
    
'priority' => 'high',
    
'fields' => array(
        array(
            
'name' => 'Company name',
            
'desc' => 'Enter the name of the company ',
            
'id' => $prefix 'comname',
            
'type' => 'text',
            
'std' => ''
        
),

        array(
            
'name' => 'Company tagline',
            
'desc' => 'Enter a line or about the company',
            
'id' => $prefix 'comdescript',
            
'type' => 'text',
            
'std' => ''
        
),
        array(
            
'name' => 'Company location',
            
'desc' => 'Enter location of the company',
            
'id' => $prefix 'comlocate',
            
'type' => 'text',
            
'std' => ''
        
),
        array(
            
'name' => 'Contact Email',
            
'desc' => 'Email to which applicants shall respond',
            
'id' => $prefix 'comail',
            
'type' => 'text',
            
'std' => ''
        
)    
        
        
        
    ),
    
);


add_action('admin_menu''mytheme_add_box');

// Add meta box
function mytheme_add_box() {
    global 
$meta_box;
    
    
add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box'$meta_box['page'], $meta_box['context'], $meta_box['priority']);
}

// Callback function to show fields in meta box
function mytheme_show_box() {
    global 
$meta_box$post;
    
    
// Use nonce for verification
    
echo '<input type="hidden" name="mytheme_meta_box_nonce" value="'wp_create_nonce(basename(__FILE__)), '" />';
    
    echo 
'<table class="form-table">';

    foreach (
$meta_box['fields'] as $field) {
        
// get current post meta data
        
$meta get_post_meta($post->ID$field['id'], true);
        
        echo 
'<tr>',
                
'<th style="width:20%"><label for="'$field['id'], '">'$field['name'], '</label></th>',
                
'<td>';
        switch (
$field['type']) {
            case 
'text':
                echo 
'<input type="text" name="'$field['id'], '" id="'$field['id'], '" value="'$meta $meta $field['std'], '" size="30" style="width:97%" />',
                    
'<br />'$field['desc'];
                break;
            case 
'textarea':
                echo 
'<textarea  name="'$field['id'], '" id="'$field['id'], '" cols="60" rows="4" style="width:97%">'$meta $meta $field['std'], '</textarea>',
                    
'<br />'$field['desc'];

                break;
            case 
'select':
                echo 
'<select name="'$field['id'], '" id="'$field['id'], '">';
                foreach (
$field['options'] as $option) {
                    echo 
'<option'$meta == $option ' selected="selected"' '''>'$option'</option>';
                }
                echo 
'</select>',
                
'<br />'$field['desc'];
                break;
            case 
'radio':
                foreach (
$field['options'] as $option) {
                    echo 
'<input type="radio" name="'$field['id'], '" value="'$option['value'], '"'$meta == $option['value'] ? ' checked="checked"' ''' />'$option['name'];
                }
                break;
            case 
'checkbox':
                echo 
'<input type="checkbox" name="'$field['id'], '" id="'$field['id'], '"'$meta ' checked="checked"' ''' />';
                break;
        }
        echo     
'<td>',
            
'</tr>';
    }
    
    echo 
'</table>';
}

add_action('save_post''mytheme_save_data');

// Save data from meta box
function mytheme_save_data($post_id) {
    global 
$meta_box;
    
    
// verify nonce
    
if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) {
        return 
$post_id;
    }

    
// check autosave
    
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return 
$post_id;
    }

    
// check permissions
    
if ('page' == $_POST['post_type']) {
        if (!
current_user_can('edit_page'$post_id)) {
            return 
$post_id;
        }
    } elseif (!
current_user_can('edit_post'$post_id)) {
        return 
$post_id;
    }
    
    foreach (
$meta_box['fields'] as $field) {
        
$old get_post_meta($post_id$field['id'], true);
        
$new $_POST[$field['id']];
        
        if (
$new && $new != $old) {
            
update_post_meta($post_id$field['id'], $new);
        } elseif (
'' == $new && $old) {
            
delete_post_meta($post_id$field['id'], $old);
        }
    }
}

?>
Existe algún error o será de otra página de este themes?
Gracias.
__________________
POLANCO.CL
"Diseño - POLANCO"