This answer 提供查询的代码,该查询返回分类术语的OR匹配:
global $query_string;
$args[\'tax_query\'] = array(
array(
\'taxonomy\' => \'status\'
,\'terms\' => array( \'available\', \'pending\' ) // change to "sold" for 2nd query
,\'field\' => \'slug\'
),
);
我想让我的分类模板从URL中检索数组(,\'terms\'=>数组(\'available\',\'pending\')的术语值,与单个术语的值相同。
重点是允许分类术语随时间变化,而不必为特定的兴趣组合硬编码页面模板,因此,如果有更好的方法,请提出建议。
幸亏this post 我将永久链接映射到模板文件,如下所示:
example.com/cptslugs maps to my archive-cptname.php template.
example.com/cptslug/cpt-post maps to my single-cptname.php template.
example.com/cptslugs/ctxslug/term maps to my taxonomy-ctxname.php template.
我想要一些类似于:
实例com/cptslugs/ctxslug/term1/term2/
映射到我的分类法ctxname。php模板,以便get\\u query\\u var(\'term\')从url返回一个术语数组(term1,term2)。
但如果我能
实例com/cptslugs/ctxslug/?术语=术语1,术语2
映射到我的分类法ctxname。php模板,使get\\u query\\u var(\'term\')可以通过重写规则和过滤器从url返回一个术语数组(term1,term2),也可以。
但不管是哪种方式,其想法都是模板文件应该工作,无论它是传递一个术语还是传递一组术语。
UPDATE
好的-
@scribu to the rescue! -- 大概一直在寻找,这就是我发现的。我想我已经把一切都弄清楚了,但我没法让它发挥作用。
?tax1=term1,term2&tax2=term2+term3
映射到:
query_posts( array(
\'tax1\' => \'term1,term2\',
\'tax2\' => \'term3+term4\'
) );
进一步映射到:
query_posts( array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'tax1\',
\'field\' => \'slug\',
\'terms\' => array(\'term1\', \'term2\'),
\'operator\' => \'OR\'
),
array(
\'taxonomy\' => \'tax2\',
\'field\' => \'slug\',
\'terms\' => array(\'term3\', \'term4\'),
\'operator\' => \'AND\'
),
) );
实例com/?ctxname=term1,term2
呈现首页模板。Revision: it renders taxonomy-ctxname.php when you spell ctxname correctly. Imaging that!
实例com/?cptslug/ctxslug=term1,term2
(分类法是用cptslug/ctxslug的slug注册的)也会呈现首页模板。
实例com/cptslug/?ctxslug=term1+term2
呈现存档ctpname。php模板。
如何获取呈现分类法ctxname的URL。php或分类法。php模板?
然后,一旦我记下来,对漂亮URL的建议是受欢迎的,但不是绝对必要的。
UPDATE TWO
example.com/?ctxname=term1,term2
和
example.com/ctpslugs/ctxslug/term1,term2/
两者都呈现分类法ctxname。php。详情见我的答案,张贴在下面。