Woocommerce 如何在同一行上连接之前和之后的商店循环挂钩

Woocommerce how to concatenate Before and After shop loop hooks on the same line

我正在使用 woocommerce 开发 e-commerce 网站。

我正在使用挂钩和 content-product.php 文件在商店类别和所有位置中设计产品卡片(第二个容器,其中包括产品名称、价格等)。

我的 product.php 文件代码是

<div class="second-container">

            <div class="product_info">
                <?php do_action( 'woocommerce_before_shop_loop_item_title'); ?>
                <a href="<?php echo get_the_permalink() ?>" class="title"><?php do_action( 'woocommerce_shop_loop_item_title' ); ?></a>
                                <?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?>

这个要显示名字。

对于我的第一个条目,这是一个名为“Brand”的自定义属性,我在 functions.php 文件中使用了以下函数。

add_action('woocommerce_shop_loop_item_title', 'display_custom_product_attributes_on_loop', 5 );
function display_custom_product_attributes_on_loop() {
    global $product;

    
    $value2 = $product->get_attribute('Brand');
    

    if ( !  empty($value2)  ) {

        echo '<div class="items" style=";"><p>';

        $attributes = array(); // Initializing

        
        if ( ! empty($value2) ) {
            $attributes[] = __("") . ' ' . $value2;
        }

        

        echo implode( '', $attributes ) . '</p></div>';
    }
}

无论如何我都很难做到这一点,因为我对 php 一无所知,它工作正常但有一个问题,那就是两个钩子之间有一些间距见图:

where brand=阁楼 title = 男士黑色高领毛衣 2600

我尝试使用所有可用的容器 top/bottom 填充来操纵 css 中的填充,但没能去除间距。

我正在寻求帮助以执行以下操作之一

1- 将品牌和标题连接在同一行中,使品牌点击永久链接到属性的全局过滤器,名称成为产品本身的永久链接(推荐 100%)

2- 将品牌和标题连接在同一行中,为它们提供产品的永久链接(推荐 80%)

3-减少第一行和第二行之间的间距。

My shop page for refrence

我使用Swoof插件进行过滤

非常感谢您的帮助。

您可以使用 the_title 过滤器挂钩来操纵标题。还使用一些条件检查来仅操作商店页面上的产品名称。所以我会做这样的事情:

add_filter('the_title', 'display_custom_product_attributes_on_loop', 20, 2);

function display_custom_product_attributes_on_loop($the_title, $id)
{
  global $product;

  if (is_shop() && get_post_type($id) == 'product') :

    $value2 = $product->get_attribute('Brand');
    
    if ( !  empty($value2)  ):

      $the_title =  $value2 . ' ' . '<a href="' . get_the_permalink() . '">' . $the_title . '</a>';

    endif;

  endif;

  return $the_title;
}

这将输出 attribute value + your product titlea linksingle product page.

add_filter('the_title', 'display_custom_product_attributes_on_loop', 20, 2);

function display_custom_product_attributes_on_loop($the_title, $id)
{
  global $product;

  if (is_shop() && get_post_type($id) == 'product') :

    $value2 = $product->get_attribute('Brand');
    
    if ( !  empty($value2)  ):

      $the_title =  $the_title . ' ' . '<a href="' . get_the_permalink() . '">' . $value2 . '</a>';

    endif;

  endif;

  return $the_title;
}

这将输出 the product title + your attribute valuea linksingle product page.