【问题标题】:Display an ACF field values in WooCommerce product archive loop在 WooCommerce 产品存档循环中显示 ACF 字段值
【发布时间】: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


【解决方案1】:

这意味着您的自定义字段值是一个具有多个值的数组

改为使用以下内容:

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 文件中。它应该可以工作。

【讨论】:

  • 成功了!当然,我接受并赞成您的解决方案,我的意思是伙计,我可能最终会为您的荣誉建造一座神殿和/或凯旋门。再次,非常非常感谢!图片供参考ibb.co/zFQy6S9
猜你喜欢
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 2021-04-01
  • 2019-01-26
  • 2021-02-24
  • 2020-07-06
相关资源
最近更新 更多