根据法典,使用add_post_meta()
不能。该函数应该返回true
或false
.
However, 该函数是一个简单的包装add_metadata()
...
1726 function add_post_meta($post_id, $meta_key, $meta_value, $unique = false) {
1727 // make sure meta is added to the post, not a revision
1728 if ( $the_post = wp_is_post_revision($post_id) )
1729 $post_id = $the_post;
1730
1731 return add_metadata(\'post\', $post_id, $meta_key, $meta_value, $unique);
1732 }
https://core.trac.wordpress.org/browser/tags/3.8.1/src/wp-includes/post.php#L1726
... 和
add_metadata()
返回行插入ID。
返回值
(布尔|整数)
返回false
发生故障时。一旦成功,returns the ID of the inserted row. 但是,请注意,返回值可能是add_{$meta_type}_metadata
滤器
http://codex.wordpress.org/Function_Reference/add_metadata
您也可以在源代码中看到:
73 $mid = (int) $wpdb->insert_id;
74
75 wp_cache_delete($object_id, $meta_type . \'_meta\');
76
77 do_action( "added_{$meta_type}_meta", $mid, $object_id, $meta_key, $_meta_value );
78
79 return $mid;
80 }
https://core.trac.wordpress.org/browser/tags/3.8.1/src/wp-includes/meta.php#L31
鉴于这两个函数的源代码,我不知道如何
add_post_meta()
可以返回
boolean
当它只是将信息传递给并返回的输出时,
add_metadata()
.
我只是快速测试了一下add_post_meta()
在纯本地测试服务器上的旧(3.6)安装上,我得到了ID,而不是true
或false
. 如果您获得boolean
我怀疑这可能是“add_{$meta_type}_metadata
过滤“如文档中所述add_metadata()
问题也可能与AJAX的操作方式有关,但您没有发布任何与此相关的详细信息或代码。