zblog1.7版本实现搜索功能的伪静态的图文教程
索页的伪静态仅限最新的1.7+版本才行,其他版本未测,好了,看看官方的文档是怎么说明的。
1.7 新版路由增加了路由系统,一般来说,我们只要向系统注入一条路由规则,再实现该条路由 call 的函数,匹配成功后向该函数传入一个数组参数,就实现路由功能了。增加路由条目的关键是在配置路由规则的数组,如果对路由系统不熟悉,请在应用中心下载 Z-Blog PHP Development Kit 插件,仔细研究系统自带的路由规则。
搜索功能伪静态化
//将注入路由的函数挂上接口Add_Filter_Plugin('Filter_Plugin_Zbp_PreLoad', '主题ID_RegRoute');挂上接口只有我们在写入搜索的伪静化规则,
//创建搜索伪静化的规则,并挂在 Filter_Plugin_Zbp_PreLoad 接口function 主题ID_RegRoute() {
global $zbp;
$route = array (
'posttype' => 0,//文章类型,表示公开文章
'type' => 'rewrite',
'name' => 'post_article_search', //名称
'call' => 'ViewSearch', //呼叫的函数,匹配成功后call之,并传入一个含有各种匹配参数的数组
'urlrule' => '{%host%}search/{%q%}_{%page%}.html',//规则主体
'args' => array (
'q' => '[^\\/_]+',//q是搜索的关键字,支持正则匹配
'page',//page是页码
),
'only_match_page' => false,//为假表示可以匹配没有{%page%}参数的url,默认如此可以不加这一行配置
);
$zbp->RegRoute($route);}//ViewSearch函数系统已经写好了,所以只需要注入路由就可以实现搜索功能的伪静态化!路由系统在匹配到规则后,向 call 所指定的函数 传入一个 array 数组,其格式如下
function ViewSearch() {
//获取路由系统传入参数,路由系统传入一个且只传一个含有各种匹配参数的数组
$args = func_get_arg[0];
$q = $args['q']; //获取查询字符串
$page = $args['page']; //获取页面,如果有的话
//得到该匹配成功的Route路由规则
$route = $args['_route'];
//可以打印出$args查看详情
var_dupm($args);/*
//该数组由posttype和匹配的各种参数和原始规则组成
array(4) {
["q"]=>
string(7) "xxxxxxx"
["page"]=>
int(1)
["posttype"]=>
int(0)
["_route"]=>
array(10) {
//路由规则。。。
//该段省略
}
}
*/}OK,至此搜索页面的伪静态化规则已经设置完成,关于ViewSearch函数我的主题没有添加,有技术的可以自行尝试。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
仍然有问题? 我们要如何帮助您?




