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'];
您还可以在文档页面上阅读有关此功能的更多信息:
更新
正在将返回的标签翻译成您当地的语言!
我通常会使用这两个过滤器挂钩:gettext
和 ngettext
。
您可以在文档页面上阅读更多相关信息:
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;
}
我有这段代码来获取自定义字段 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'];
您还可以在文档页面上阅读有关此功能的更多信息:
更新
正在将返回的标签翻译成您当地的语言!
我通常会使用这两个过滤器挂钩:gettext
和 ngettext
。
您可以在文档页面上阅读更多相关信息:
WordPress
gettext
filter hook
WordPressngettext
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;
}