WordPress查询,将来自多个自定义分类的项作为`Term`参数

时间:2016-07-06 作者:Breus

因此,我正在使用购买的插件版本(WP目录,抱歉,我不能发布超过2个链接)作为我的网站代码的基础,我正在调整它,以便它可以用于我尝试创建的网站。问题是,不是默认值categories 作为字段,插件的作者编写了一个分类法wpccategories 职位类别。所以我的帖子都是商店的产品,我想向客户展示产品的替代品。我使用一个查询,从同一个产品中查询出3个其他产品wpccategories 所以用同样的term->slug 作为term->slug 当然不包括产品本身。否则,产品的替代品将是产品本身。

我完成了这项工作,一切都很好(将显示下面的代码),但是,大多数产品都有多个wpccategories 其中一些类别的产品只有不到3种可供选择。所以我想要的是如果我们先说wpccategories 没有足够的产品显示为替代品,系统会查看第二个(等等)wpccategories 寻找替代品。

我现在就是这样做的(PHP):

global $post;
                        $id1 -> current_id;
                        $terms = get_the_terms($id1, \'wpccategories\');
                        $exclude = array($id);

                        foreach ($terms as $term) {
                        }

                                                $args = array(
                        \'taxonomy\' => \'wpccategories\',
                        \'post_type\'=> \'wpcproduct\',
                        \'post__not_in\' => $exclude,
                        \'term\' => $term->slug,
                        \'order\'     => \'ASC\',                    
                        \'orderby\'   => \'menu_order\',
                        \'posts_per_page\'    => 3,
                        \'paged\' => $paged,                          

                        );
                    products    =   new WP_Query($args);

              while($products->have_posts()): $products->the_post();
在此之后,我将所有字段分配给变量,并使用它们在网站上生成变量,但我想你知道这是如何工作的。

所以我的问题是,我到底该如何解决它\'term\'=> $term->slug 我得到的是\'terms\'=> something 或者我已经试过了\'tax_query\' => array(array(foo)) 如中所述https://codex.wordpress.org/Class_Reference/WP_Query . 不知何故,我就是无法做到这一点,到目前为止,我所做的一切都只是给出了所有帖子的所有条款,而不是当前帖子的所有条款。

还有一点,我的代码中有一个空的foreach语句:foreach ($terms as $term) { } 有没有更整洁的方法?在谷歌上搜索,但什么都找不到。

如果您无法想象我现在正在做什么,请检查:http://www.bgc-testomgeving.nl/sem/

非常感谢您的帮助,因为有点卡住了。

1 个回复
SO网友:Breus

我设法做到了。我使用了以下查询参数:

\'tax_query\' => array( array(\'taxonomy\' => \'wpccategories\', \'field\' => \'slug\', \'terms\' => $termz ) )

具有$termz 为:$termz = wp_get_object_terms($id, \'wpccategories\', array("fields" => "slugs"));

我遇到的问题是我需要使用单数\'field\'带单数\'slug\'tax_query (我知道这一点)但我需要在wp_get_object_terms 作用因此,任何其他类型的其他方法似乎都不起作用。