I’m hitting the wall for nearly two hours now, trying to figure this out.
Here is the thing’ I have made a xml parser to read xml file and add posts (with content) from xml:
$ch = curl_init( "http://abc.xml" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
$data = curl_exec( $ch );
curl_close( $ch );
$doc = new SimpleXmlElement( $data, LIBXML_NOCDATA );
$size = count( $doc );
$count_added = 0;
for( $i = 0; $i <= 1; $i++ )
{
$img = $doc->prod[$i]->awImage;
// skipping the part of post adding
$my_post_id = wp_insert_post( $new_post );
update_post_meta( $my_post_id, 'prod_image', $img );
}
Problem is that custom filed doesn’t get my $img
value, even though if I do echo $img
– I get the content… Strange thing is if I create some other variable $var="test"
and enter this instead $img
in update_post_meta
– the custom field gets the value of $test
…
Whats wrong here, because I’m starting to hit keyboard really badly…
Regards.
Maybe if you use
add_post_meta
instead, becauseupdate_post_meta
assumes that you have already that value and you are updating it ( from http://codex.wordpress.org/Function_Reference/update_post_meta ).Also check if
$doc->prod[$i]->awImage
is actually a string (doprint_r
instead ofecho
).