这只是猜测,因为我还没有测试你的代码,但是。。。对我来说,有一部分看起来很粗略:
仅当此条件为true时,才会运行所有操作:
if(isset($post_type) && $post_type == "listings"){
在哪里
$post_type
变量来自?
$post_type = get_post_type();
因此,您不向该函数调用传递任何post\\u id。。。这意味着您使用全局$post对象。但无法保证此类职位的存在。
这是有原因的save_post
hook将post\\u id作为param传递-您应该在函数中使用它。。。
因此,将上面的行更改为:
$post_type = get_post_type($post_id);
应该能解决你的问题。
附言:这样做没有意义:
$post_types = get_post_types();
unset($post_types[\'listings\']);
以后,您甚至不在代码中使用该变量。。。
PPS。save_post
是一个动作,因此您不必返回其中的任何内容