【问题标题】:WP-Ecommerce show category name on product pageWP-Ecommerce 在产品页面上显示类别名称
【发布时间】:2012-09-14 01:24:25
【问题描述】:

我正在使用 WP-Ecommerce 并希望在单个产品页面上显示产品的类别。我四处搜索,发现了一些几乎可以工作的东西(由 Rohan 在这个网站上发布):

function cdl_get_cat() {
global $wp_query, $wpsc_query;
$query_data = Array();
$cdl_post_id = wpsc_the_product_id();

$categories = wp_get_object_terms( $cdl_post_id , 'wpsc_product_category' );
//if product is associated w more than one category
if(count($categories) > 1 && isset($wpsc_query->query_vars['wpsc_product_category']))
$query_data['category'] = $wpsc_query->query_vars['wpsc_product_category'];
elseif(count($categories) > 0)
$query_data['category'] = $categories[0]->slug;

return $query_data['category'];
}
echo cdl_get_cat();

虽然此代码可以满足我的需要,但它会将类别名称显示为 slug(即眼影而不是眼影)。我对 PHP 不是很流利,所以我不确定需要更改什么才能显示名称而不是 slug。

【问题讨论】:

    标签: php wordpress categories


    【解决方案1】:

    我整天都在为此苦苦挣扎,我也不擅长 php……但我已经通过删除这个位(我不明白……)让它工作:

    //if product is associated w more than one category
    if(count($categories) > 1 && isset($wpsc_query->query_vars['wpsc_product_category']))
    $query_data['category'] = $wpsc_query->query_vars['wpsc_product_category'];
    elseif(count($categories) > 0)
    

    然后在此处将“slug”更改为“名称”:

    $query_data['category'] = $categories[0]->slug;
    

    所以你只需要这个:

    <?php function cdl_get_cat() {
    global $wp_query, $wpsc_query;
    $query_data = Array();
    $cdl_post_id = wpsc_the_product_id();
    
    $categories = wp_get_object_terms( $cdl_post_id , 'wpsc_product_category' );
    $query_data['category'] = $categories[0]->name;
    
    return $query_data['category'];
    
    }
    echo cdl_get_cat();
    ?>
    

    如果您对一种产品有多个类别,则更改 [0] 将为您提供不同的类别,因为我认为 $categories 是一个包含所有相关类别的数组。如果需要,您应该能够遍历所有这些。我应该看看怎么做!

    【讨论】:

      【解决方案2】:

      谢谢,发现这对于将类添加到所属类别的产品很有用:

      在产品循环之前:

          <?php function cdl_get_cat() {
          global $wp_query, $wpsc_query;
          $query_data = Array();
          $cdl_post_id = wpsc_the_product_id();
      
          $categories = wp_get_object_terms( $cdl_post_id , 'wpsc_product_category' );
      
          $count = count($categories);
      
              for ($i = 0; $i < ($count); $i++) {
                  $query_data['category'] = $categories[$i]->name;
                  echo $query_data['category'];
                  if ($i < ($count - 1))
                  echo ", ";
              }
      
          }  
          cdl_get_cat();
          ?>
      

      然后在循环中:

      <li class="product_grid_item product_view_<?php echo wpsc_the_product_id(); ?> <?php cdl_get_cat(); ?>">
      

      【讨论】:

        【解决方案3】:

        哇,我想我知道了,或者找到了更好的地方... 这应该获取与显示的产品相关的所有类别,然后循环出一个列表,用逗号分隔。

        <?php function cdl_get_cat() {
        global $wp_query, $wpsc_query;
        $query_data = Array();
        $cdl_post_id = wpsc_the_product_id();
        
        $categories = wp_get_object_terms( $cdl_post_id , 'wpsc_product_category' );
        
        $count = count($categories);
        
            for ($i = 0; $i < ($count); $i++) {
                $query_data['category'] = $categories[$i]->name;
                echo $query_data['category'];
                if ($i < ($count - 1))
                echo ", ";
            }
        
        }  
        cdl_get_cat();
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-03
          • 2015-05-15
          • 1970-01-01
          相关资源
          最近更新 更多