ZBlog自定义列表文章数和分页按钮数
ZBlog的后台页面设置中有个列表页显示文章的数量的设置项,用来控制文章列表页面每页显示的文章数目。这个数字默认是覆盖全局所有文章列表页面的,全局所有默认列表页都会显示这个数目的文章。
有时候我们需要在特定的地方显示自定义的数目,可以通过拦截接口的方法实现。
ZBlog中有这样子一个过滤器接口: Filter_Plugin_ViewList_Core ,通过它就可以自定义文章列表数目。
/* '**************************************************< '类型:Filter '名称:Filter_Plugin_ViewList_Core '参数:&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar '说明:定义列表核心接口 '调用: '**************************************************> */ DefinePluginFilter('Filter_Plugin_ViewList_Core');
在ZBlog的源代码可以看到这个过滤器的最后一个参数是$pagebar,在主题(插件)中对它$pagebar→PageCount进行修改就可以实现列表数目的修改。
如果要修改每个列表页下方的分页f翻页按钮数,则修改$pagebar→PageBarCount即可。
比如,我在主题中要实现在手机上显示文章数比在电脑上少1篇,在手机上的分页按钮只显示4个,代码入下:
//在激活主题(插件)的时候挂接 XXX_ChangePageListCount 方法。 Add_Filter_Plugin('Filter_Plugin_ViewList_Core', 'XXX_ChangePageListCount'); // 在 XXX_ChangePageListCount 方法中具体修改定义数目的逻辑。 function XXX_ChangePageListCount(&$type, &$page, &$category, &$author, &$datetime, &$tag, &$w, &$pagebar){ if(is_mobile()){ global $zbp; //每页文章数 $pagebar->PageCount = $zbp->displaycount - 1; // 分页按键数 $pagebar->PageBarCount = 4; } }
这其中有个is_mobile()的方法,用于判断是手机在浏览还是电脑在浏览网站,通过浏览器的 USER_AGENT 判断,不在本文讨论范围内。
留言评论