覆盖WP的默认搜索规则以重定向到我自己的模板

时间:2011-10-07 作者:Rutwick Gangurde

像往常一样,重写难倒了我!我已经构建了一个自定义搜索,使用一个平面表来搜索注释和注释元。我使用的重写规则如下:

..../search/reviews/<parameters>
我正在向我的自定义模板发送一个查询变量“args”,它是一组要搜索的键/值对,其中包含sql和其他内容。这很好用。我的问题是,当我搜索以下内容时,

.../search/reviews/
这里我不发送任何参数,因此我想重定向到404,或者只重定向到同一个模板,其中args为空,我会看到args为空,因此直接显示所有结果。我写下了规则:

add_rewrite_rule(\'^search/reviews/\',\'index.php?pagename=search-results\',\'top\');
但它仍然可以作为默认搜索,搜索关键字“reviews”(就像WP搜索“hello”。。。。/search/hello) 不会重定向到我的模板。

有没有关于如何避免这种行为的帮助?

2 个回复
最合适的回答,由SO网友:Rutwick Gangurde 整理而成

我使用jQuery技巧实现了这一点。我改变了submit 到abutton 并使用jQuery来形成所需的URL。如果搜索表单中没有输入任何内容,那么我会重定向到404 URL。

SO网友:Stephen Harris

您是否尝试过:

add_rewrite_rule(\'^search/reviews/?\',\'index.php?pagename=search-results\',\'top\');
相反?(做最后一个/ 可选)。如果刷新重写规则后仍然不起作用,请检查Monkeyman rewrite analyzier 并用您的发现更新问题。

结束

相关推荐