带有类型的自定义字段:获取自定义字段的值标签(类型为SELECT)

时间:2012-09-04 作者:Yanick Rochon

我们使用Types 用于为客户端设置不同自定义产品的插件。某个自定义帖子(产品)包含一些自定义字段,这些字段是下拉选择。创建此类型的新产品时,用户可以从该列表中选择一个选项。

例如,假设某个产品有一个select类型的自定义字段,并设置了以下选项:

1 = Option A
2 = Option B
3 = Option C
现在,在模板中,我尝试显示该自定义字段的标签。我想到的最好的办法是:

$value = reset(get_post_custom_values(\'custom_field\', $post->ID));
例如,它将返回一个字符串"1", 自定义字段的值。现在,这是毫无价值的,因为我需要显示标签(例如,从列表中选择的项目"Option A") 在该模板中。

如何找到该自定义字段值的关联标签?

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

正如您所知,经过多次代码嗅探,我终于找到了一个可行的解决方案:

首先,自定义字段可以以wpcf- (例如:wpcf-custom-field). 可以忽略此前缀,只保留其余字符。如中所示

$customField = substr($fieldName, 5);  // $fieldName = \'wpcf-custom-field\';
现在,可以通过函数获取自定义字段数据wpcf_admin_fields_get_field 位于Types 插件目录位于includes/fields.php. 例如:

$fieldConfig = wpcf_admin_fields_get_field($customField);
除其他事项外,可使用以下代码收集选项:

$fieldOptions = array();
if (isset($fieldConfig[\'data\'][\'options\'])) {
   foreach ($fieldConfig[\'data\'][\'options\'] as $option) {
      $fieldOptions[$option[\'title\']] = $option[\'value\'];
   }
}
如果自定义字段是类型选择,则返回如下数组

array(
   \'1\' => \'Option A\',
   \'2\' => \'Option B\',
   \'3\' => \'Option C\'
);

结束

相关推荐

带有类型的自定义字段:获取自定义字段的值标签(类型为SELECT) - 小码农CODE - 行之有效找到问题解决它

带有类型的自定义字段:获取自定义字段的值标签(类型为SELECT)

时间:2012-09-04 作者:Yanick Rochon

我们使用Types 用于为客户端设置不同自定义产品的插件。某个自定义帖子(产品)包含一些自定义字段,这些字段是下拉选择。创建此类型的新产品时,用户可以从该列表中选择一个选项。

例如,假设某个产品有一个select类型的自定义字段,并设置了以下选项:

1 = Option A
2 = Option B
3 = Option C
现在,在模板中,我尝试显示该自定义字段的标签。我想到的最好的办法是:

$value = reset(get_post_custom_values(\'custom_field\', $post->ID));
例如,它将返回一个字符串"1", 自定义字段的值。现在,这是毫无价值的,因为我需要显示标签(例如,从列表中选择的项目"Option A") 在该模板中。

如何找到该自定义字段值的关联标签?

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

正如您所知,经过多次代码嗅探,我终于找到了一个可行的解决方案:

首先,自定义字段可以以wpcf- (例如:wpcf-custom-field). 可以忽略此前缀,只保留其余字符。如中所示

$customField = substr($fieldName, 5);  // $fieldName = \'wpcf-custom-field\';
现在,可以通过函数获取自定义字段数据wpcf_admin_fields_get_field 位于Types 插件目录位于includes/fields.php. 例如:

$fieldConfig = wpcf_admin_fields_get_field($customField);
除其他事项外,可使用以下代码收集选项:

$fieldOptions = array();
if (isset($fieldConfig[\'data\'][\'options\'])) {
   foreach ($fieldConfig[\'data\'][\'options\'] as $option) {
      $fieldOptions[$option[\'title\']] = $option[\'value\'];
   }
}
如果自定义字段是类型选择,则返回如下数组

array(
   \'1\' => \'Option A\',
   \'2\' => \'Option B\',
   \'3\' => \'Option C\'
);

相关推荐