在前端 woocommerce 产品页面上显示自定义字段标签
Display custom field label on front end woocommerce product page
我需要一些帮助。这是一个两部分的问题。
1.) 如何在网站前端显示自定义字段的标签?
我在 functions.php 文件中设置了一些自定义字段,这些字段显示在
添加产品页面,按照此处的说明操作:
http://www.remicorson.com/mastering-woocommerce-products-custom-fields/
它们有效!但是我怎样才能同时显示标签呢?
这是我放在 /wp-content/themes/shopifiq/woocommerce/single-product/tabs/description.php 中的代码(不确定如何让它显示在选项卡中)
<?php
// Display custom field value
echo get_post_meta( get_the_ID(), '_text_field', true );
echo get_post_meta( get_the_ID(), '_number_field', true );
echo get_post_meta( get_the_ID(), '_textarea', true );
?>
2.) 在我得到要显示的标签后,有没有一种方法可以将这些格式化为不成为杂乱无章的字符串?在php元素中加一个class可以吗?我该怎么做,就像这样? (添加了 *)
// Text Field
woocommerce_wp_text_input(
array(
'id' => '_text_field',
***'class' => 'left',***
'label' => __( 'Manufacturer', 'woocommerce' ),
'placeholder' => 'Example: Herman Miller',
'desc_tip' => 'true',
'description' => __( 'Enter the manufacturer name here. Examples: Kimball, Allsteel, Herman Miller, etc.', 'woocommerce' )
)
);
编辑 4/13
您好,我想出了如何输出表单标签的方法,但我认为这不是最佳解决方案。它虽然有效。但我仍然需要知道如何添加 classes 以便我可以格式化。我想在左栏中添加一些信息,在右栏中添加一些信息。谢谢!
<?php
// Display custom field value
echo '<strong>Manufacturer: </strong>';
echo get_post_meta( get_the_ID(), '_text_field_1', true );
echo '<br>';
echo '<strong>Brand: </strong>';
echo get_post_meta( get_the_ID(), '_text_field', true );
echo '<br>';
echo '<strong>Retail Price: </strong>';
echo get_post_meta( get_the_ID(), '_number_field_1', true );
echo '<br>';
echo '<strong>Arnolds Price: </strong>';
echo get_post_meta( get_the_ID(), '_number_field', true );
echo '<strong>Features: </strong>';
echo get_post_meta( get_the_ID(), '_textarea_1', true );
echo '<br>';
echo '<strong>Additional Information: </strong>';
echo get_post_meta( get_the_ID(), '_textarea', true );
?>
我想出了如何添加 class 以便它们按列输出。以防万一有人想知道。我仍然愿意就如何更好地做到这一点提出意见,但现在这是可行的。
<?php
// Display custom field value
echo '<div class="left">' . '<strong>Manufacturer: </strong>' . get_post_meta( get_the_ID(), '_text_field_1', true ) . '<br>' .
'<strong>Brand: </strong>' . get_post_meta( get_the_ID(), '_text_field', true ) . '<br>' .
'<strong>Retail Price: </strong>' . get_post_meta( get_the_ID(), '_number_field_1', true ) . '<br>' .
'<strong>Arnolds Price: </strong>' . get_post_meta( get_the_ID(), '_number_field', true ) . '</div>';
echo '<div class="right">' . '<strong>Features: </strong>' . get_post_meta( get_the_ID(), '_textarea_1', true ) . '<br>' .
'<strong>Additional Information: </strong>' . get_post_meta( get_the_ID(), '_textarea', true ) . '</div>';
?>
我使用此代码(post 只是单元格内容):
<td><p class="css-class"><?php $field_name = "field_55e4335cfbc8c";
$field = get_field_object($field_name);
echo $field['label'] . $field['value'];?></p></td>
它基于 this 插件,仍在尝试弄清楚如何在用户未完成字段的情况下不显示任何内容。
希望对您有所帮助!
我需要一些帮助。这是一个两部分的问题。
1.) 如何在网站前端显示自定义字段的标签?
我在 functions.php 文件中设置了一些自定义字段,这些字段显示在 添加产品页面,按照此处的说明操作: http://www.remicorson.com/mastering-woocommerce-products-custom-fields/
它们有效!但是我怎样才能同时显示标签呢?
这是我放在 /wp-content/themes/shopifiq/woocommerce/single-product/tabs/description.php 中的代码(不确定如何让它显示在选项卡中)
<?php
// Display custom field value
echo get_post_meta( get_the_ID(), '_text_field', true );
echo get_post_meta( get_the_ID(), '_number_field', true );
echo get_post_meta( get_the_ID(), '_textarea', true );
?>
2.) 在我得到要显示的标签后,有没有一种方法可以将这些格式化为不成为杂乱无章的字符串?在php元素中加一个class可以吗?我该怎么做,就像这样? (添加了 *)
// Text Field
woocommerce_wp_text_input(
array(
'id' => '_text_field',
***'class' => 'left',***
'label' => __( 'Manufacturer', 'woocommerce' ),
'placeholder' => 'Example: Herman Miller',
'desc_tip' => 'true',
'description' => __( 'Enter the manufacturer name here. Examples: Kimball, Allsteel, Herman Miller, etc.', 'woocommerce' )
)
);
编辑 4/13
您好,我想出了如何输出表单标签的方法,但我认为这不是最佳解决方案。它虽然有效。但我仍然需要知道如何添加 classes 以便我可以格式化。我想在左栏中添加一些信息,在右栏中添加一些信息。谢谢!
<?php
// Display custom field value
echo '<strong>Manufacturer: </strong>';
echo get_post_meta( get_the_ID(), '_text_field_1', true );
echo '<br>';
echo '<strong>Brand: </strong>';
echo get_post_meta( get_the_ID(), '_text_field', true );
echo '<br>';
echo '<strong>Retail Price: </strong>';
echo get_post_meta( get_the_ID(), '_number_field_1', true );
echo '<br>';
echo '<strong>Arnolds Price: </strong>';
echo get_post_meta( get_the_ID(), '_number_field', true );
echo '<strong>Features: </strong>';
echo get_post_meta( get_the_ID(), '_textarea_1', true );
echo '<br>';
echo '<strong>Additional Information: </strong>';
echo get_post_meta( get_the_ID(), '_textarea', true );
?>
我想出了如何添加 class 以便它们按列输出。以防万一有人想知道。我仍然愿意就如何更好地做到这一点提出意见,但现在这是可行的。
<?php
// Display custom field value
echo '<div class="left">' . '<strong>Manufacturer: </strong>' . get_post_meta( get_the_ID(), '_text_field_1', true ) . '<br>' .
'<strong>Brand: </strong>' . get_post_meta( get_the_ID(), '_text_field', true ) . '<br>' .
'<strong>Retail Price: </strong>' . get_post_meta( get_the_ID(), '_number_field_1', true ) . '<br>' .
'<strong>Arnolds Price: </strong>' . get_post_meta( get_the_ID(), '_number_field', true ) . '</div>';
echo '<div class="right">' . '<strong>Features: </strong>' . get_post_meta( get_the_ID(), '_textarea_1', true ) . '<br>' .
'<strong>Additional Information: </strong>' . get_post_meta( get_the_ID(), '_textarea', true ) . '</div>';
?>
我使用此代码(post 只是单元格内容):
<td><p class="css-class"><?php $field_name = "field_55e4335cfbc8c";
$field = get_field_object($field_name);
echo $field['label'] . $field['value'];?></p></td>
它基于 this 插件,仍在尝试弄清楚如何在用户未完成字段的情况下不显示任何内容。
希望对您有所帮助!