$post_id对象的属性有问题

时间:2013-05-25 作者:Behseini

在处理检索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\']);

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我认为这个问题几乎无法回答。这实际上取决于上下文。

在您的示例中$post 不管是什么global 已设置为。这是非常普遍的,非常明显的,并没有说太多,但如果不知道代码执行的上下文,很难给出更好的答案。

为循环中的每个帖子设置该变量setup_postdatathe_post 它以类似的方式设置在一些后端页面上,最终基于$_GET$_POST 数据是否$_GET$_POST 数据包含帖子ID或查询组件。

您使用的许多挂钩和过滤器都传递了该值,因此并不总是需要直接获取全局。

结束

相关推荐

为页面父级添加标准页面属性Metabox

我有一个Wordpress电子商务插件提供给我的自定义帖子类型“product”,该插件不提供在页面属性元框中更改页面父级的选项。我想补救一下。我发现this post 在Wordpress StackExchange上,但它专门处理页面属性元框的页面模板元素。有人能根据WSE的另一个问题中提供的非常好的答案推断出适合我的目的吗?它甚至可以包括所有页面属性元框选项。它不必拆分为页面父级。但我需要的是Page Parent。编辑#2:这是我到目前为止的资料。metabox会显示相应的下拉列表,但我无法保存p