WP-eCommerce:基于两个类别获取产品(返回仅存在于两个类别中的产品)

时间:2013-01-22 21:37:49

标签: javascript php wordpress

我刚刚开始在Wordpress中开发,特别是使用WP-eCommerce插件,我遇到了几个问题。其中一个主要问题是能够根据特定产品在两个(或更多)类别中的存在情况来查询特定产品。在这种情况下,我希望返回的唯一产品是两个类别中存在的产品,而不仅仅是一个或另一个。

我知道这可以在我自己的(原始的php)或只是wp_query(或类似的东西)上完成。但是,我希望尽可能保持在WP-eCommerce框架内,以限制所需的样式和冗余代码量。

对于某些澄清,这种情况的一个例子是这样的:

发送到网址的查询字符串 - http://example.com/?wpsc_product_category=cat1&wpsc_product_category=cat2

然后由WP-eCommerce发送和处理,但只接受最新的wpsc_product_category查询,因此只返回cat2中存在的产品。

因此,总之我的两个主要问题是:

  1. 在WP-eCommerce框架中,我可以使用哪种选项来进行查询并返回两者中存在的产品,而不仅仅是其中一个类别。

    • 如果不可能,我可以使用哪种wordpress选项
    • 创建自己的功能怎么样?
  2. WP-eCommerce中的查询流程究竟是什么。至少,我可以访问格式化查询字符串的文件,并让它查询两个类别。

2 个答案:

答案 0 :(得分:1)

那么,如果有人想根据两个产品类别创建一个循环,比如说“Soon”和“Skinny”,这应该有用吗?它给了我第一类的所有结果仍然是......我错过了什么?

$args = array(
    'post_type' => 'wpsc-product',
    'tax_query' => array(
    'relation' => 'AND',
        array(
        'taxonomy' => 'category',   
        'field' => 'slug',
            'terms' => 'Soon'
        ),  
        array(
        'taxonomy' => 'category',
        'field' => 'slug',
        'terms' => 'Skinny'
        )
    )
);
$wp_query = new WP_Query( $args );
while( $my_query->have_posts() ) : $my_query->the_post();

答案 1 :(得分:0)

这是在我的一位同事的大力帮助下解决的。

基本上,由于wpecommerce是结构化的,它设计WP-Query只能真正管理一个要搜索的变量。为了避免这种情况,你需要在你自己的函数中覆盖$wp_query变量,你希望有多个查询的文件等等。

这是通过利用wordpress codex here

中的代码完成的

摘录:

 $args = array(
'post_type' => 'post',
'tax_query' => array(
    'relation' => 'AND',
    array(
        'taxonomy' => 'movie_genre',
        'field' => 'slug',
        'terms' => array( 'action', 'comedy' )
    ),
    array(
        'taxonomy' => 'actor',
        'field' => 'id',
        'terms' => array( 103, 115, 206 ),
        'operator' => 'NOT IN'
    )
)
);
$wp_query = new WP_Query( $args );

通过一些修改,这使我可以直接访问不同的分类变量关系,并将多个搜索变量串联在一起。