展示产品品牌

时间:2017-09-29 15:34:25

标签: php wordpress woocommerce

在过去的几个小时里,我一遍又一遍地使用相同的代码。我很生气,它可能有一个非常简单的解决方法。

基本上我试图用WooCommerce Brands在WP的产品幻灯片中展示每种产品的品牌。

产品幻灯片显示正常,但我无法访问每种产品的品牌名称。

我将复制代码,我在产品循环中收集详细信息:

$product = get_sub_field('product_name');
$product_name = $product->post_title;
$product_link = get_post_permalink($product->ID);
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $product->ID), 'full' );
$product = wc_get_product($product->ID ); 

以上情况很好,我可以访问除品牌名称之外的所有细节。对于品牌名称,我尝试了很多东西,包括:

$brands = wp_get_object_terms(get_the_ID(), 'pwb-brand');
$product_brand = $brands->name;

$ product-brand没有返回相关产品的品牌名称...

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我找到了这段代码。在此网站http://www.techniquewebdesign.co.uk/show-woocommerce-brand-name/

<?php 
    $brands = wp_get_post_terms( $post->ID, 'product_brand', array("fields" => "all") );
    foreach( $brands as $brand ) {
        echo $brand->name; 
    }
?>

答案 1 :(得分:0)

要在产品详情页面中显示品牌名称,您可以在functions.php中使用以下代码,这会在产品标题前显示品牌名称。

remove_action('woocommerce_single_product_summary','woocommerce_template_single_title',5);

add_action('woocommerce_single_product_summary', 'woocommerce_my_single_title',5);

if ( ! function_exists( 'woocommerce_my_single_title' ) ) {
     function woocommerce_my_single_title() {

    global $product;
    $taxonomy = 'brand';
    $slug = 'brand'; //Or whatever the slug of "Brand" is
    $term = get_term_by('slug', $slug, $taxonomy);
    //Gets the ID of the Parent category

       $term_id = $term->term_id;
       //Get the Child terms
       $brand_terms = wp_get_post_terms( $product->id, $taxonomy, array("fields" => "all") );

           foreach ($brand_terms as $brand_item) {
           // Hunt out the child term that is a child of the parent
           if ( $brand_item->parent == $term_id ) {
               //Get the name of the brand

               $brand = $brand_item->name;
               break; //Assumes you've only assigned one Brand
           }
           }
 ?>  

    <h2 itemprop="name" class="product_title entry-title"><span><?php echo $brand ?></span></h2>
<?php
   }
}
?>