Beste,

Ik ben bezig met het programmeren van een slider plugin voor WordPress. Hierbij wil ik gebruik maken custom metaboxen.
De velden die in de metaboxen moet komen te staan, staan in een array opgesomd.

Nu is het probleem dat ik een Notice error krijg, namelijk:

Notice: Undefined index: dsmeta_image in /customers/0/d/a/xxx/httpd.www/wordpress/wp-content/plugins/ds-flexslider/includes/cpt-manager.php on line 181 Notice: Undefined index: dsmeta_image_caption in /customers/0/d/a/xxx/httpd.www/wordpress/wp-content/plugins/ds-flexslider/includes/cpt-manager.php on line 181


Ik heb op internet gezocht en dit geeft aan dat de dsmeta_image en dsmeta_image_caption niet bestaan.

Ik heb gebruik gemaakt van de volgende tutorial voor het maken van een custom metabox en velden:
http://wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/

Hierbij de code waar het fout gaat volgens de error:


add_action('save_post', 'dsslider_manager_save_extras');
function dsslider_manager_save_extras($post_id) {
	global $custom_meta_fields;
	
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
		return $post_id;
	}
	
	// loop through fields and save the data
	foreach ($custom_meta_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);
		}
	} // end foreach
}



Line 181 is namelijk:


		$new = $_POST[$field['id']];



Mijn vraag is wat er precies mis zou kunnen gaan en hoe ik dit kan oplossen.
Ik hoor graag van jullie.

Met vriendelijke groet,
Casper
Bestaat $_POST['field['id']] wel? Waarschijnlijk niet.
Daarnaast... is het niet $_POST['field'][['id']?
@Eddy Erkelens,

Klopt! Die bestaat niet...

Jou voorbeeld is als volgt, maar hier sluit je toch verkeerd af? (waarschijnlijk een typefout?
$_POST[ 'field' ] [ [ 'id' ]

Moet denk ik zo zijn dan:
$_POST[ 'field' ] [ 'id' ]


Ik heb het volgende getest:

	foreach ($custom_meta_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);
	    }
	} // end foreach



Dit gaf dezelfde error, alleen nu met de output dat 'field' niet bestaat.


Tevens heb ik dit geprobeerd:

	foreach ($custom_meta_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);
	    }
	} // end foreach



De error die ik toen kreeg is:
Warning: illegal offset type in ... on line 180 (de regel van de update_post_meta).

Ik hoor graag van je.

Reageren