Undefined index en campos de los tipos personalizados
-
Buenos días a tod@s,
He creado un tipo personalizado, lo instalo en mi servidor, y cuando intento crear un nuevo contenido de este tipo, me da el siguiente error:«Undefined index: _marca in /storage/ssd5/219/4304219/public_html/wp-content/themes/Prueba/functions.php on line «
El tipo personalizado, que he creado es el siguiente:
function articulo() { global $ // Noncename necesario para verificar de dónde vienen los datos echo '<input type="hidden" name="articulometa_noncename" id="articulometa_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ) . '" />'; // Obtenemos los atributos del artículo si estuvieran guardados, con get_post_meta y el nombre del atributo $marca = get_post_meta($post->ID, '_marca', true); $precio = get_post_meta($post->ID, '_precio', true); $talla = get_post_meta($post->ID, '_talla', true); // Mostramos los campos de texto donde introduciremos los atributos echo '<p>Marca</p>'; echo '<input type="text" name="_marca" value="' . $marca . '" class="widefat" />'; echo '<p>Precio</p>'; echo '<input type="text" name="_precio" value="' . $precio . '" class="widefat" />'; echo '<p>Talla</p>'; echo '<input type="text" name="_talla" value="' . $talla . '" class="widefat" />'; } Y el error, me da en el metodo de guardar: function save_articulos_meta($post_id, $post) { // Comprobación de seguridad para que no se acceda desde otros sitios if ($_POST && !wp_verify_nonce($_POST['articulometa_noncename'], __FILE__)) { return $post->ID; } // Comprobación de que el usuario actual puede editar if ( !current_user_can( 'edit_post', $post->ID )) { return $post->ID; } // Obtenemos los atributos guardados en POST cuando guardamos nuestra página de artículo $articulos_meta['_marca'] = $_POST['_marca']; // <-- AQUI $articulos_meta['_precio'] = $_POST['_precio']; // <-- AQUI $articulos_meta['_talla'] = $_POST['_talla']; // <-- AQUI // Guardamos los valores de los atributos como campos personalizados foreach ($articulos_meta as $key => $value) { // No guardamos si el post es una revisión if ($post->post_type == 'revision') { return; } if (get_post_meta($post->ID, $key, FALSE)) { // Si el atributo ya existía, lo actualizamos update_post_meta($post->ID, $key, $value); } else { // Si no existía, lo añadimos nuevo add_post_meta($post->ID, $key, $value); } // Si el valor está en blanco, eliminamos el atributo if (!$value) { delete_post_meta($post->ID, $key); } } }
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
- El debate ‘Undefined index en campos de los tipos personalizados’ está cerrado a nuevas respuestas.