网址查询变量在静态帖子页面上不起作用

时间:2019-04-17 11:43:03

标签: wordpress wordpress-theming

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

我希望“查询”值相同,但看起来静态版本根本不会生成该值。

0 个答案:

没有答案