我的问题来自this one. 坦白地说,我从来没有真正触及过重写规则,它们对我来说仍然没有意义
我已经成功建立了以下链接
http://localhost/wordpress/custom-archive/
默认情况下,这将导致404页,如
custom-archive
不存在。这和参观一样
http://localhost/wordpress/category/
那部分很好用。
现在,发生了什么,当一篇文章附有类别和标签时,这个链接才会出现在一篇文章上。如果帖子有类别和/或标签,我会通过自定义将相关的类别ID和标签ID添加到链接中query_vars
. 链接如下所示
http://localhost/wordpress/custom-archive/?cq=21&tq=18,19,20,144
其他重要信息,我可以使用
template_include
只要两个人中的任何一个
query_vars
存在,请使用自定义模板。这很有效
通过对特定模板进行自定义查询,显示正确的帖子
我的问题虽然我得到了一个自定义查询(我也想消除),但主查询404。这可以在我的面包屑和显示“未找到页面”的浏览器选项卡中看到
我所尝试的pre_get_posts
从我的自定义中获取值query_vars
更改主查询,但这不起作用,因为Wordpress试图以post或single page的形式读取页面
我也尝试过重写规则,这对我的事业也没有帮助。问题是,我真的无法得到正确的组合。我知道我必须告诉Wordpress这个页面是一个自定义存档,而不是一篇文章或一个页面,然后使用我自定义的值query_vars
在a中tax_query
获取属于类别的帖子AND 自定义中给定的标记query_vars
对于实现这一目标的正确重写规则,有什么建议吗?
编辑我知道我必须以某种方式重写
http://localhost/wordpress/custom-archive/?cq=XXX&tq=XXX
Wordpress可以理解这是帖子类型的自定义存档页面(或虚拟页面)
post
, 页面上显示的帖子应与以下类别中的帖子相匹配
cq
AND 具有由给定的标记
tq
.
这是关于在自定义模板中使用自定义查询的基本概念
$args = [
\'post_type\' => \'post\',
\'tax_query\' => [
\'relation\' => \'AND\',
[
\'taxonomy\' => \'category\',
\'terms\' => get_query_var( \'cq\' ),
],
[
\'taxonomy\' => \'post_tag\',
\'terms\' => get_query_var( \'tq\' ),
],
],
];
$q = new WP_Query( $args );
我需要翻译这个来处理主查询。只需将上述内容添加到
pre_get_posts
不起作用,该页面只是404的,因此需要重写URL才能起作用