WooCommerce 产品上的 ACF 字段未显示
Posted
技术标签:
【中文标题】WooCommerce 产品上的 ACF 字段未显示【英文标题】:ACF fields on WooCommerce Product not displaying 【发布时间】:2021-11-26 01:30:48 【问题描述】:我正在自定义一个名为 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');
在 single-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 没有显示。
【问题讨论】:
【参考方案1】:你能试试这个代码吗:
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);
未测试。
【讨论】:
按照我尝试过的建议,将 get_the_id() 抓取到循环内的变量中,然后在循环外转储get_fields($ID_of_the_product)
。还是没有运气。
并且还修改了该功能,如您所示。也没有运气。【参考方案2】:
由于一些奇怪的原因,这种方法对我有用 (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()
也不起作用。
【讨论】:
以上是关于WooCommerce 产品上的 ACF 字段未显示的主要内容,如果未能解决你的问题,请参考以下文章
php 通过函数文件向woocommerce产品添加acf字段
php 通过函数文件向woocommerce产品添加acf字段
从 WooCommerce 购物车中的产品中获取 ACF 图像字段的数据