我正在学习构建一个完全定制的WordPress主题。我有一张搜索表
<form role="search" method="get" class="search-form" action="<?php echo home_url() ?>/">
<input type="search" placeholder="Search …" value="" id="s" name="s" required />
<button type="submit"><i class="fa fa-search"></i></button>
</form>
它呈现以下HTML:
<form role="search" method="get" class="search-form" action="http://local.devsite.com/">
<input type="search" placeholder="Search …" value="" id="s" name="s" required />
<button type="submit"><i class="fa fa-search"></i></button>
</form>
在我的
search.php
模板,我目前有以下代码来检查是否一切都按预期工作:
if( empty( $_GET[\'s\'] ) ) {
echo \'No search\';
exit;
}
$s = $_GET[\'s\'];
echo $s;
当我跑步时
http://local.devsite.com/?s=sedan
, 我得到了
$_GET[\'s\']
完美打印在搜索页面上
但是,我希望URL如下所示:http://local.devsite.com/search/sedan
, 所以我在我的主题中添加了以下代码functions.php
文件
function yd_change_search_url() {
if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( \'s\' ) ) );
exit();
}
}
add_action( \'template_redirect\', \'yd_change_search_url\' );
添加代码后,我重新保存
Settings > Permalinks
. 但当我跑的时候
http://local.devsite.com/search/sedan
, 我明白了
No Search 搜索页面上的消息。
短语No Search 当$_GET[\'s\']
根据我在中添加的以下代码遇到search.php
样板
if( empty( $_GET[\'s\'] ) ) {
echo \'No search\';
exit;
}
$s = $_GET[\'s\'];
echo $s;
我做错了什么?我正在跟踪
this tutorial.
我的最终目标是构建一个包含多个查询字符串的URL,即
http://local.devsite.com/?s=sedan&mfg=2010&model=Mark%20X&cond=used,
重写后最终会转化为http://local.mydev.com/sedan/2010/mark-x/used