2

我无法在每件商品下方的“描述”选项卡中为每件产品的每个描述的末尾添加我的产品的类别描述。到目前为止,我的函数(在底部)放置了所有类别描述,而不是产品实际所在的一个类别。

这是带有描述页面的类别的示例

带有描述的示例产品页面 (开始于:Stories 美国原住民的故事和传说传统上服务... ...)

这是我用来组合两个功能的代码。它可以添加所有类别描述,但我试图让它只显示一个相关描述:

add_filter( 'the_content', 'customizing_woocommerce_description' );
function customizing_woocommerce_description( $content ) {

    // Only for single product pages (woocommerce)
    if ( is_product() ) {

        // The custom content
        $args  = array( 'taxonomy' => 'product_cat' );
        $terms = get_terms('product_cat', $args);

        $count = count($terms); 
        // if ($count > 0) {

            foreach ($terms as $term) {
                /*  echo $term->description;*/
                $custom_content = '<p class="custom-content">' . __($term->description, "woocommerce").'</p>';

                // Inserting the custom content at the end
                $content .= $custom_content;
            }
        // }
    }
    return $content;
}

https://pastebin.com/GHBxe23i

到目前为止,我正在为 wordpress 实现一个非破坏性 php 插件中的代码。

4

1 回答 1

2

get_terms()您应该通过wp_get_post_terms()这种方式替换您的代码:

add_filter( 'the_content', 'woocommerce_custom_product_description', 20, 1 );
function woocommerce_custom_product_description( $content ) {
    global $post;

    // Only for woocommerce single product pages
    if ( ! is_product() ) 
        return $content; // exit

    $terms =  wp_get_post_terms( $post->ID, 'product_cat' );
    if ( count( $terms ) == 0 ) 
        return $content; // exit

    foreach ( $terms as $term )
        $content .= '<p class="custom-content">' . $term->description . '</p>';

    return $content;
}

代码进入活动子主题(或主题)的 function.php 文件中。测试和工作。

于 2018-03-20T20:22:34.283 回答