zblog1.7版本实现搜索功能的伪静态的图文教程

talklee

文章最后更新时间:2022年02月09日已超过234天没有更新。

大家过年好啊,开工第一天就试试水,把之前主题更新的搜索伪静态功能代码教程记录以下,这个功能很多开发者已经更新了,包括插件已经出来了,在官方看到新版文档之后也在主题逐渐增加了,而且附带开关,是否需要伪静态交由您来决定,搜索页的伪静态仅限最新的1.7+版本才行,其他版本未测,好了,看看官方的文档是怎么说明的。

zblog1.7版本实现搜索功能的伪静态的图文教程 第1张

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函数我的主题没有添加,有技术的可以自行尝试,我不是懒我是看不懂下面的代码,嗯嗯,从实招来哈哈,关于新版路由还有需要新玩法,包括独立的下载页面和文章分页等,有时间看看文章分页,这个感觉还行,虎年折腾之路已开启,一起向未来,加油!!!

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 4 条评论,2736人围观)
网友昵称:访客1111
访客1111 V 游客 Google Chrome 86.0.4240.198 Windows 10 x64 椅子
08-31 来自广西 回复
没有看懂啊,能不能写得明白一点,让小白也能搞上
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 10 x64
08-31 来自辽宁 回复
@访客1111 直接抄作业就行了,还需要写啥?
网友昵称:一福大百科
一福大百科 V 游客 Google Chrome 69.0.3497.100 Windows 8.1 x64 沙发
02-08 来自上海 回复
好像会了 又好像没会
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 10 x64
02-09 来自天津 回复
@一福大百科 好像看懂了,又好像没懂。

目录[+]