Php 高级自定义字段更新\u字段()不起作用
我有一段代码,可以更改post数据并用json文件的数据替换它们:Php 高级自定义字段更新\u字段()不起作用,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我有一段代码,可以更改post数据并用json文件的数据替换它们: add_filter( 'wp_insert_post_data', 'update_post',10 ,3 ); function update_post( $data, $postarr ) { $postid = $postarr['ID']; $imdbl = get_field('imdbl', $postid); if ($imdbl) { $url = 'http://ww
add_filter( 'wp_insert_post_data', 'update_post',10 ,3 );
function update_post( $data, $postarr ) {
$postid = $postarr['ID'];
$imdbl = get_field('imdbl', $postid);
if ($imdbl) {
$url = 'http://www.omdbapi.com/?i='.$imdbl.'&apikey=c0ceddac';
$jdata = file_get_contents($url);
$json = json_decode($jdata);
$data['post_title'] = $json->Title;
update_field('ReleaseY', $json->Year, $postid);
}
return $data;
}
现在,这段代码起作用了,它获取标题并将其放在帖子标题中。我的问题在于这部分代码:
update_字段('ReleaseY',$json->Year,$postid)代码>
这段代码替换了自定义字段的值,它在“Post”Post类型上非常有效,但在其他Post类型(在本例中为“movies”)中根本不起作用
我不知道问题出在哪里,我在互联网上到处搜索,什么都试过了
请帮帮我
谢谢。尝试改用本机WP函数更新\u post\u meta
,除非您确定在尝试使用该函数时已加载ACF:
update_post_meta( $postid, 'ReleaseY', $json->Year );
参考资料:请显示$postid=$postarr['ID']的值代码>是。这里可能有错误。另外,请确保$imdbl
确实包含一个值(您的代码已经包含了该值,但实际上不会检查您的电影帖子类型是否确实提供了所述值。)@Ivan86您好,我测试了所有这些,$postid
是400
,我甚至把它取了下来,改用400号,但它不起作用$imdbl
也可以,代码在post中正常工作,但在自定义post类型中则不行。