Mil*_*anG 3 wordpress advanced-custom-fields
我有一些自定义帖子类型"视频",我添加了一些自定义ACF字段("video_path","author_name"和"audio_author").我以编程方式生成该类型的帖子,如下所示:
$video_post_params = array(
'post_title' => wp_strip_all_tags($video_title),
'post_status' => 'publish',
'post_author' => 1,
'post_type' => 'video'
);
$video_id = wp_insert_post( $video_post_params );
update_field('video_path', $video_path, $video_id);
update_field('author_name', $video_author, $video_id);
update_field('audio_author', $audio_author, $video_id);
Run Code Online (Sandbox Code Playgroud)
所有的值都很好插入 - 当我在后端打开帖子时一切都很好.但是,当我尝试使用这些值时,我什么都没得到?!?
我正在读取模板文件中的值,如下所示:
get_field('video_path', $video_id)
Run Code Online (Sandbox Code Playgroud)
如果我打开帖子并且保存它而没有任何改变,一切都开始正常工作,我之后正常通过ACF字段.从后端手动创建的帖子一直运行良好.
我做错了什么?从代码生成帖子时,我还需要一些额外的步骤吗?
这里报告的问题是:http: //support.advancedcustomfields.com/forums/topic/programmatic-post-insertion-acf-fields-and-the-save_post-hook/
但是这个解决方案显然不适合我 - 我的update_field()功能已经紧随其后wp_insert_post().
找到了!
插入ACF时,必须使用字段值字段键.如果使用了键名,就像我一样,在第一次看时插入的所有内容都很好,但是在手动保存post之前,值不可用.所以它就像:
update_field('field_56e683ab6265f', $video_path, $video_id);
update_field('field_56e68415b5c4b', $video_author, $video_id);
update_field('field_56e6842d58740', $audio_author, $video_id);
Run Code Online (Sandbox Code Playgroud)
真是一团糟....
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |