在 WooCommerce 产品存档循环中显示 ACF 字段值
Display an ACF field values in WooCommerce product archive loop
我目前正在本地主机上玩,因为我要为拥有唱片店的客户设计电子商务。我已经安装了 Elementor、WooCommerce 和 ACF,并首先尝试使用 elementor 自定义皮肤为我的产品创建自定义循环,我可以在其中轻松添加我想要的字段和动态数据。
然而,这变成了一场噩梦,因为作为一个 post 存档,我丢失了排序等,而且由于某种原因,添加到购物车按钮的行为很奇怪(点击它后我进入了单一产品页面)。
因此,我放弃了自定义 posts 存档,而是使用经典产品存档,这不允许我直接向产品循环添加任何内容。
我尝试在我的 functions.php 文件中添加此代码(我的自定义字段名为 vinyl_genre,它是自定义字段组的一部分):
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
global $product;
// Display ACF text
if( $text = get_field( 'vinyl_genre', $product->get_id() ) ) {
echo '<p class="archive-genre">' . $text . '</p>';
}
}
但它没有用,而是在存档中的每个产品标题下方我收到此警告:
警告::第 36 行数组 [...] \wp-content\themes\hello-theme-child-master\functions.php 中的数组到字符串的转换 Array
我绝对是 php 的 n00b,但我在堆栈上找到了上面的示例,只是更改了字段名称,但无济于事。
有什么建议吗?
-- 编辑--
使用 print_r($text)
给出值数组 (因为乙烯基可以有多种流派)
这意味着您的自定义字段值是一个包含多个值的数组。
改为使用以下内容:
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
global $product;
$values = (array) get_field( 'vinyl_genre', $product->get_id() ); // Get custom field values
// Display custom field values
if( ! empty($values) ) {
echo '<p class="archive-genre">' . implode( ', ', $values ) . '</p>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。应该可以。
我目前正在本地主机上玩,因为我要为拥有唱片店的客户设计电子商务。我已经安装了 Elementor、WooCommerce 和 ACF,并首先尝试使用 elementor 自定义皮肤为我的产品创建自定义循环,我可以在其中轻松添加我想要的字段和动态数据。 然而,这变成了一场噩梦,因为作为一个 post 存档,我丢失了排序等,而且由于某种原因,添加到购物车按钮的行为很奇怪(点击它后我进入了单一产品页面)。 因此,我放弃了自定义 posts 存档,而是使用经典产品存档,这不允许我直接向产品循环添加任何内容。
我尝试在我的 functions.php 文件中添加此代码(我的自定义字段名为 vinyl_genre,它是自定义字段组的一部分):
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
global $product;
// Display ACF text
if( $text = get_field( 'vinyl_genre', $product->get_id() ) ) {
echo '<p class="archive-genre">' . $text . '</p>';
}
}
但它没有用,而是在存档中的每个产品标题下方我收到此警告:
警告::第 36 行数组 [...] \wp-content\themes\hello-theme-child-master\functions.php 中的数组到字符串的转换 Array
我绝对是 php 的 n00b,但我在堆栈上找到了上面的示例,只是更改了字段名称,但无济于事。 有什么建议吗?
-- 编辑--
使用 print_r($text)
给出值数组 (因为乙烯基可以有多种流派)
这意味着您的自定义字段值是一个包含多个值的数组。
改为使用以下内容:
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
global $product;
$values = (array) get_field( 'vinyl_genre', $product->get_id() ); // Get custom field values
// Display custom field values
if( ! empty($values) ) {
echo '<p class="archive-genre">' . implode( ', ', $values ) . '</p>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。应该可以。