4
votes

This is a little strange, I am using "update_post_meta" to update the custom fields in Wordpress. When I run update_post_meta($post_id, 'Test_Field', 'Test Value'); the custom field updates without a problem BUT when I use a string value it does not update:

$test_value = "Test";
 echo $test_value; // No problem here
 echo $post_id; // No problem here
 update_post_meta($post_id, 'Test_Field', $test_value);

Thanks very much in advance for your help

Stu

3
Double quotes fixed it, but anyone know why? update_post_meta("$page_id", "Test_Field", "$test_value");Stuart
how are you assigning $post_id? Just guessing - everything looks fine, frankly.Bosworth99

3 Answers

4
votes

Try to cast variables with types. Try this:

update_post_meta( (int) $post_id, 'Test_Field', (string) $test_value );
1
votes

Your first example used $post_id and solution $page_id. Was that a typo?

1
votes

It might sound strange but, meta_key name must be identical to the input field name.

update_post_meta( $post_id, 'top_image', $_POST['top_image'] );