Wordpress 如何获取 "label" 个自定义字段

Wordpress how to get "label" of custom fields

我有这段代码来获取自定义字段 myCustomField 的值,效果很好:

get_post_meta( get_the_ID(), 'myCustomField', true )

此代码获取存储在此字段中的值。

但现在我需要一个代码来动态获取并回显自定义字段标签(不是存储的值),它是“我的自定义字段。

此操作将触发此代码:

add_action('woocommerce_product_meta_start' , 'add_in_product_page');

如果您使用 ACF 插件创建了自定义字段,那么您需要的是 field object。您可以调用 get_field_object 函数来获取对象,然后找到对象中返回的标签,如下所示:

$your_field_name = "your_custome_field_name"; 

$your_field_object = get_field_object($your_field_name); // You could also pass the field key instead of field name   


echo $your_field_object['label']; 
echo "<br>";  
echo $your_field_object['value'];
echo "<br>";  
echo $your_field_object['key'];
echo "<br>";  
echo $your_field_object['type'];
echo "<br>";  
echo $your_field_object['ID'];   

您还可以在文档页面上阅读有关此功能的更多信息:

ACF get_field_object function


更新

正在将返回的标签翻译成您当地的语言!

我通常会使用这两个过滤器挂钩:gettextngettext

您可以在文档页面上阅读更多相关信息:

WordPress gettext filter hook
WordPress ngettext filter hook

所以翻译应该是这样的:

$awesome_label = $your_field_object['label'];

add_filter('ngettext', 'your_theme_custom_translation', 20, 3);
add_filter( 'gettext', 'your_theme_custom_translation', 20, 3 );

function your_theme_custom_translation( $translated, $text, $domain ) {
  if ( ! is_admin() ) {
    if ( $awesome_label == $translated ){
      $translated = 'etiqueta impresionante'; // This is the place where you could type anything you want in your local language to replace the default english label
    }
  }
  return $translated;
}