【发布时间】:2021-06-23 10:14:01
【问题描述】:
我目前正在 localhost 上玩,因为我要为拥有唱片店的客户设计电子商务。我已经安装了 Elementor、WooCommerce 和 ACF,最初尝试使用 elementor 自定义皮肤为我的产品创建自定义循环,在那里我轻松地添加了我想要的动态数据字段。 然而,结果证明这是一场噩梦,因为作为一个帖子存档我失去了排序等,而且由于某种原因,添加到购物车按钮的行为很奇怪(点击后它把我带到了单个产品页面)。 所以我放弃了自定义帖子存档并改用经典产品存档,这不允许我直接向产品循环添加任何内容。
我尝试在我的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>';
}
}
但它不起作用,而是在存档中的每个产品标题下方我收到此警告:
警告:[...] \wp-content\themes\hello-theme-child-master\functions.php 中第 36 行数组中的数组到字符串转换
我是 php 的绝对 n00b,但我在堆栈上找到了上面的示例,只是更改了字段名称,但无济于事。 有什么建议吗?
-- 编辑--
使用print_r($text) 给出一个值数组(因为黑胶唱片可以有多种类型)
【问题讨论】:
-
嗨,我在functions.php中写了这个: add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );功能 custom_field_display_below_title(){ 全球 $product; print_r(get_field('vinyl_genre', $product->get_id())); // 显示 ACF 文本 if( $text = get_field( 'vinyl_genre', $product->get_id() ) ) { echo '
' . $文本。 '
';现在它显示这个:ibb.co/VB9QgcG关于如何实现我想要的任何想法?
标签: php arrays wordpress woocommerce advanced-custom-fields