在处理检索CPT元数据时,我发现了两种方法get_post_meta()
和get_post_custom()
从指定的post返回具有指定键的自定义字段的值。这两种方法都通过了$post_id
作为访问全局的第一个参数$post
对象的ID属性。
现在我的问题是,WordPress如何确定我们要的是哪一个CPT或帖子?例如,在下面的示例中,WordPress如何理解我们正在谈论的帖子
function save_options(){
global $post;
if (!isset($_POST[\'price\']) || $post->post_type != \'product\')
{
return $post;
}
update_post_meta($post->ID, "price", $_POST[\'price\']);
最合适的回答,由SO网友:s_ha_dum 整理而成
我认为这个问题几乎无法回答。这实际上取决于上下文。
在您的示例中$post
不管是什么global
已设置为。这是非常普遍的,非常明显的,并没有说太多,但如果不知道代码执行的上下文,很难给出更好的答案。
为循环中的每个帖子设置该变量setup_postdata
或the_post
它以类似的方式设置在一些后端页面上,最终基于$_GET
或$_POST
数据是否$_GET
或$_POST
数据包含帖子ID或查询组件。
您使用的许多挂钩和过滤器都传递了该值,因此并不总是需要直接获取全局。