WooCommerce 产品上的 ACF 字段未显示
ACF fields on WooCommerce Product not displaying
我正在定制一个名为 AmazeTheme 的旧主题,它不是专门为 WooCommerce 支持而制作的。 woocommerce.php
位于主题的根部。然而,在 Simply Show Hooks 和 Show current template 等插件的帮助下,我能够看到将哪些信息放在哪里。
但是我遇到了一个奇怪的问题。我添加的 ACF 字段根本不可见。我什至尝试在产品循环部分分配字段组。
我也试过下面的方法
add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );
function view_acf_field_for_single_product(){
if (function_exists('the_field')){
the_field('shop_support');
}
}
并且在单循环内-product.php
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'single-product' );
$dump = get_fields();
?>
<?php endwhile; // end of the loop. ?>
然后在文件的所需位置var_dump($dump)
。
本网站的 php 版本是 5.6.40,WooCommerce 版本是 3.4.8
WP版本为4.9.18
我查了很多解决办法。还尝试了 WooCommerce Hooks,但仍然不知道为什么 ACF 没有显示。
你能试试这个代码吗:
add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );
function view_acf_field_for_single_product(){
global $post;
if (function_exists('the_field')){
the_field('shop_support', $post->ID);
}
}
未测试。
由于一些奇怪的原因,这种方法对我有用 (path/to/theme/woocommerce/single-product.php
):
<?php if (get_field_objects()):
foreach ( get_field_objects() as $field_id => $field ) :
$value = trim($field['value']);
if (!empty($value)) :
?>
<div class="product_field" id="field-<?php echo $field_id; ?>">
<?php the_field($field_id); ?>
</div>
<?php endif; ?>
<?php endforeach; // end of the loop. ?>
<?php endif; ?>
还有以下类别(path/to/theme/woocommerce/archive-product.php
)页:
<?php
$extra_info = get_field_object( 'category_details', get_queried_object() );
if ( !empty($extra_info) ) :
?>
<div class="category_field" id="field-<?php echo $extra_info['key']; ?>">
<?php echo $extra_info['value']; ?>
</div>
<?php endif; ?>
即使在这些位置,get_fields()
也不起作用。
我正在定制一个名为 AmazeTheme 的旧主题,它不是专门为 WooCommerce 支持而制作的。 woocommerce.php
位于主题的根部。然而,在 Simply Show Hooks 和 Show current template 等插件的帮助下,我能够看到将哪些信息放在哪里。
但是我遇到了一个奇怪的问题。我添加的 ACF 字段根本不可见。我什至尝试在产品循环部分分配字段组。
我也试过下面的方法
add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );
function view_acf_field_for_single_product(){
if (function_exists('the_field')){
the_field('shop_support');
}
}
并且在单循环内-product.php
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'single-product' );
$dump = get_fields();
?>
<?php endwhile; // end of the loop. ?>
然后在文件的所需位置var_dump($dump)
。
本网站的 php 版本是 5.6.40,WooCommerce 版本是 3.4.8 WP版本为4.9.18
我查了很多解决办法。还尝试了 WooCommerce Hooks,但仍然不知道为什么 ACF 没有显示。
你能试试这个代码吗:
add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );
function view_acf_field_for_single_product(){
global $post;
if (function_exists('the_field')){
the_field('shop_support', $post->ID);
}
}
未测试。
由于一些奇怪的原因,这种方法对我有用 (path/to/theme/woocommerce/single-product.php
):
<?php if (get_field_objects()):
foreach ( get_field_objects() as $field_id => $field ) :
$value = trim($field['value']);
if (!empty($value)) :
?>
<div class="product_field" id="field-<?php echo $field_id; ?>">
<?php the_field($field_id); ?>
</div>
<?php endif; ?>
<?php endforeach; // end of the loop. ?>
<?php endif; ?>
还有以下类别(path/to/theme/woocommerce/archive-product.php
)页:
<?php
$extra_info = get_field_object( 'category_details', get_queried_object() );
if ( !empty($extra_info) ) :
?>
<div class="category_field" id="field-<?php echo $extra_info['key']; ?>">
<?php echo $extra_info['value']; ?>
</div>
<?php endif; ?>
即使在这些位置,get_fields()
也不起作用。