在Settings -> Reading
下,我已将网站设置为对主页和“帖子”页面都使用自定义的静态页面。帖子页面位于/news/
。
我想使用/news/
作为可过滤档案的URL,但是它的行为似乎不同于默认的最新文章列表(当用作主页)或自定义文章类型档案通常具有的行为。
当我访问/?tag=demo
时,看到的列表由demo
标签过滤,但是当我尝试通过URL查询传递标签过滤器时,例如/news/?tag=demo
,列表未过滤。当我在没有查询变量的情况下访问/news/
时,看到的是未过滤的列表。
我怀疑这与以下事实有关:静态帖子页面是Wordpress的“页面”,而不是真正的存档。有没有一种方法可以格式化URL,以将查询变量传递到这种静态的帖子列表?
我正在开发一个自定义主题,因此可以根据需要修改PHP。我可以使用自定义重写规则在/news/
上显示帖子存档,但是我希望找到一种解决方案,该解决方案更灵活,更容易让我的客户通过WP仪表板理解和调整。
我使用“二十十九”主题对此功能进行了测试,并且禁用了所有插件。看来这是Wordpress的标准行为,与我的自定义主题或任何插件无关。
我尝试消除了斜杠(/news?tag=demo
),但结果是相同的。
我还尝试了“当有疑问时”的解决方案,以重新保存永久链接设置,而没有任何效果。
当我检查$wp_query
上的全局/?tag=demo
变量时,我看到以下值(删节为仅显示我认为相关的值)
"query": {
"tag": "demo"
},
"tax_query": {
...
"queries": [
{
"taxonomy": "post_tag",
"terms": [
"demo"
],
"field": "slug",
"operator": "IN",
'include_children": true
}
]
...
},
"post_count": 1
但是当我检查$wp_query
上的/news/?tag=demo
时,相同的值看起来像这样:
"query": {
"page": "",
"tag": "demo",
"pagename": "news"
},
"queries": [],
"post_count": 10
我希望“查询”值相同,但看起来静态版本根本不会生成该值。