嗯,就像往常一样,我觉得自己像个傻瓜,但在互联网上搜索了几个小时后,发现似乎很多人都在问这个问题,而我似乎在任何地方都找不到答案,我想我并没有那么慢!
重要的代码如下:
add_filter(\'wp_insert_post_data\',array(__CLASS__,\'filter_wp_insert_post_data\'),10,2);
static function filter_wp_insert_post_data($data, $postarr) {
update_post_meta($postarr[\'ID\'],\'_offices\',$postarr[\'offices\']);
return $data;
}
所发生的是,这段代码得到了运行,但没有$postarr[\'offices],所以它会插入空白数据!因此,快速解决方案是:
if(isset($postarr[\'offices\']))
update_post_meta($postarr[\'ID\'],\'_offices\',$postarr[\'offices\']);
如果要插入的数据未设置,则不会更新!
我不知道wordpress为什么不在自动保存时传递这些变量,但在真正保存时传递,但无论哪种方式都有效,所以我很高兴!