Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WP电子商务:基于两个类别获取产品(返回仅存在于两个类别中的产品)_Javascript_Php_Wordpress - Fatal编程技术网

Javascript WP电子商务:基于两个类别获取产品(返回仅存在于两个类别中的产品)

Javascript WP电子商务:基于两个类别获取产品(返回仅存在于两个类别中的产品),javascript,php,wordpress,Javascript,Php,Wordpress,我刚开始在Wordpress中开发,特别是使用WP电子商务插件,我遇到了几个问题。其中一个主要问题是能够根据特定产品在两个(或更多)类别中的存在情况查询特定产品。在本例中,我希望返回的产品是两个类别中都存在的产品,而不是一个或另一个 我知道这可以由我自己完成(原始php),也可以只使用wp_查询(或类似的东西)。然而,我希望尽可能地留在WP电子商务框架内,以限制所需的样式和冗余代码的数量 为了澄清,这种情况的一个例子如下: 发送到url的查询字符串-http://example.com/?wps

我刚开始在Wordpress中开发,特别是使用WP电子商务插件,我遇到了几个问题。其中一个主要问题是能够根据特定产品在两个(或更多)类别中的存在情况查询特定产品。在本例中,我希望返回的产品是两个类别中都存在的产品,而不是一个或另一个

我知道这可以由我自己完成(原始php),也可以只使用wp_查询(或类似的东西)。然而,我希望尽可能地留在WP电子商务框架内,以限制所需的样式和冗余代码的数量

为了澄清,这种情况的一个例子如下:

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

然后由WP电子商务发送和处理,但只接受最新的
wpsc_产品_类别
查询,因此只返回cat2中存在的产品

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

  • 在WP电子商务框架内,我可以选择哪些选项,允许我进行查询并返回同时存在于这两个类别而不仅仅是其中一个类别中的产品

    • 如果这不可能,我可以使用什么样的wordpress选项
    • 创建我自己的函数怎么样
  • WP电子商务中的查询过程到底是什么。至少,我可以访问格式化查询字符串的文件,并让它查询这两个类别


  • 在我的一位同事的大力帮助下,这个问题得到了解决

    基本上,由于wpecommerce是结构化的,它设计了
    WP查询
    ,以便只真正管理一个要搜索的变量。为了避免这种情况,您需要在您自己的函数中重写
    $wp\u query
    变量,或者在您希望有多个查询的文件中重写该变量,等等

    这是通过利用从wordpress codex中找到的代码来完成的

    摘录:

     $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 );
    

    经过一些修改,这允许我直接访问不同的分类变量关系,并将多个搜索变量串在一起

    那么,如果有人想创建一个基于两个产品类别的循环,比如“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();
    

    有几点建议,虽然我不能完全确定,因为我还没有看到你如何建立你的WPE电子商务。这两种分类法都是分类法吗?一个是变种吗?如果是这样,分类法可能不同(wpsc_产品_类别和wpsc变体)?另一个要考虑的事情是尝试输入术语的ID而不是名字,看看那里发生了什么。在这种情况下,我也希望我的字段是基于id的。