在wp-ecommerce插件中的page.php模板上获取产品类别ID

时间:2012-02-23 10:51:11

标签: wordpress wordpress-plugin

我正在使用wp-ecommerce插件在Wordpress中创建购物车。

如果我在此网址上,则会显示服务wpsc-product-category中的所有产品。

http://localhost/wordpress/products-page/services/

如何在页面模板中获取wpsc-product-category id。

我有很多类别,如上所示,每个类别在page.php模板上都有不同的菜单。

我需要获取类别ID或类别slug以显示不同类别的不同菜单

在Google上搜索了一整天后,我发现了这个:

<?php
if(is_category())
{
$cat = get_query_var(‘cat’);
$yourcat = get_category($cat);
echo $yourcat->slug;
}
else
{
echo ‘Country’; //default one
}
?>

但它在page.php模板上不起作用。

我创建了自己的逻辑,它对我有用。在这里粘贴我的代码,希望它可以帮助别人:

  if(wpsc_display_products()):

 if(wpsc_is_in_category()) :

       if(wpsc_category_id() == 89 || 
      wpsc_category_id() == 66 || 
      wpsc_category_id() == 62 || 
      wpsc_category_id() == 61)
      { 

         $menu = "menu1";

      }else
      {
         $menu = "menu2";
      }
endif;
endif;

2 个答案:

答案 0 :(得分:0)

你有没有想过这个?我实际上可以用jQuery做到这一点。只需为每个类别创建一个单独的小部件,然后在您的js中写下这样的内容:

if ($('body').filter("[class*='category']").length) {    
    $('body').addClass('category');  
    $('.category-nav').show();  
} else if ($('body').filter("[class*='category']").length) {  
    $('body').addClass('category');  
    $('.category-nav').show();  
}

继续关注每个类别的else if语句。如果你有很多类别,它可能是很多代码,但它为我做了诀窍。它只是遍历正文中的所有类,如果它包含任何类中的类别名称,它会将类别名称添加为它自己的类。

答案 1 :(得分:0)

我也一直在搜索如何在模板文件之外使用WPeC功能做任何事情,我在这里跑过这个网站:

Category wise products display in WP E-Commerce products page

我相信他提供的示例中存在一些编码错误,但您可以在此处查看他可以获取类别ID的位置:

$wpec_product_categories = get_terms( 'wpsc_product_category', 'hide_empty=0&parent=0' );
/* ---------- RUN A LOOP FOR EACH PRODUCT CATEGORIES ----------- */
foreach ( $wpec_product_categories as $wpec_categories ):
    $wpec_term_id   = $wpec_categories->term_id; // Here is your category ID
   ...

我已经使用了他的代码,并根据我的网站目的(在page.php模板中)构建了一些代码,如果您愿意,可以查看。

https://gist.github.com/4553667