为什么WordPress重写器在帖子和页面上的工作方式似乎不同?

时间:2014-04-09 作者:wilsonf1

我正在我的函数中创建一些简单的重写。我的WordPress安装中的php文件:

add_rewrite_rule(\'product1/faqs/?\', \'index.php?name=product1-faqs\', \'top\'); 
我注意到,如果在浏览器中点击“product1/faqs”,它会成功显示“product1 faqs”的内容,但会将url保留为product1/faqs(这是需要的),但仅当它是帖子时。

如果我尝试在页面上使用相同的技术,浏览器URL将切换到“product1常见问题解答”(不需要!)

为什么会这样?我不想为了重写能按预期工作而把自己局限在帖子上。。。

1 个回复
最合适的回答,由SO网友:Eric Holmes 整理而成

这是一个非常简单的解决方案-WP_Query 利用name 帖子和自定义帖子类型帖子的变量。它利用pagename 对于页面,为什么?name=product1-faqs 不工作。请改用此选项:

add_rewrite_rule(\'product1/faqs/?\', \'index.php?pagename=product1-faqs\', \'top\'); 

结束

相关推荐

在edit.php中按类别显示帖子时隐藏具有子项的帖子

我有一个自定义的帖子类型,叫做\"ttc_infobit\" 属于名为\"ttc_catalogue\". 这种分类法是分层的。当我在中筛选帖子时edit.php 根据这种分类法,我只想显示具有当前所选术语的帖子,而不想显示其子项。例如,如果我的url是:/wp-admin/edit.php?s&post_status=all&post_type=ttc_infobit&action=-1&m=0&lang=el&admin_page_template&am