在我的搜索字段(/?s=a)中键入“a”时,我的search.php
将加载模板,并显示与该字母匹配的所有结果。
如果我将此添加到我的。H访问…
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^s=(.+)$
RewriteRule .* /searchmyblog/%1/? [R,L]
然后在我的搜索中键入“a”,将显示我搜索的第一个结果。所以没有
search.php
显示所有结果的模板,但页面被重定向到“mypage.com/somecategory/amore-mio”
为什么会这样?我只是想重写/?s=
到/search/
或任何其他自定义url。
有什么想法吗?我在网上找到了很多帖子,但没有一篇是最先进的,也没有使用一些我觉得不必要的奇怪的JS黑客。
有什么想法吗?
最合适的回答,由SO网友:fuxia 整理而成
WordPress不知道您想要路径/searchmyblog/
作为搜索结果库。所以当它看到a
它试图找到最好的匹配项——就你而言,是以这封信开头的帖子。
修复您可以修改的my code for the pagination base 要更改搜索库,请执行以下操作:
if ( ! function_exists( \'t5_search_base\' ) )
{
register_activation_hook( __FILE__ , \'t5_flush_rewrite_on_init\' );
register_deactivation_hook( __FILE__ , \'t5_flush_rewrite_on_init\' );
add_action( \'init\', \'t5_search_base\' );
function t5_search_base()
{
$GLOBALS[\'wp_rewrite\']->search_base = \'searchmyblog\';
}
function t5_flush_rewrite_on_init()
{
add_action( \'init\', \'flush_rewrite_rules\', 11 );
}
}
现在您的
.htaccess
应该有用。