如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

bW博客http://bw.bo-blog.com/也玩了一段时间了,整体上感觉就是:逼格高,思路好。但是用起来就是真心不顺手啊。前不久,我就吐槽说,bw的皮肤不好制作,分页麻烦。见:https://newsn.net/say/bo-blog-wind-theme-snss.html 不过最近,苏南大叔解决了这个问题,没有修改它的库文件,仅仅在皮肤里面做了修改。下面先奉上修改的pagination.php文件。大家可以看看思路哦。虽然代码写的不是太好,但是总归是解决了问题的。

<?php
$go = @trim($_GET["go"]);
$go_arr = explode("/", $go);
$current_page = @intval($go_arr[count($go_arr) - 1]);
$current_page = ($current_page <= 0) ? 1 : $current_page;
$params = get_defined_vars();
$currentPageLink = $conf["canonicalURL"];
//$passData = $params["this"]->passData;//非登陆状态下是null,很邪门
$passData = $this->passData;
$firstPageLink = @$passData["firstPageLink"];
$firstPageLink = $this->passData["firstPageLink"] = empty($firstPageLink) ? "#" : $firstPageLink;
$prevPageLink = @$passData["prevPageLink"];
$prevPageLink = $this->passData["prevPageLink"] = empty($prevPageLink) ? "#" : $prevPageLink;
$nextPageLink = @$passData["nextPageLink"];
$nextPageLink = $this->passData["nextPageLink"] = empty($nextPageLink) ? "#" : $nextPageLink;
$finalPageLink = @$passData["finalPageLink"];
$finalPageLink = $this->passData["finalPageLink"] = empty($finalPageLink) ? "#" : $finalPageLink;
$go_arr_final = explode("/", $finalPageLink);
$max_page = @intval($go_arr_final[count($go_arr_final) - 2]);
$base_url = ($max_page <= 0) ? join("/", array_splice(explode("/", $currentPageLink), 0, -2)) : join("/", array_splice($go_arr_final, 0, -2));
$max_page = ($max_page <= 0) ? 1 : $max_page;
if ($max_page == 1) {
    $firstPageLink = $this->passData["firstPageLink"] = "#";
    $finalPageLink = $this->passData["finalPageLink"] = "#";
}
if ($firstPageLink != "#") {
    ?>
    <a href="[[::firstPageLink]]"><span class="page">首页</span></a>
    <?php
}
if ($prevPageLink != "#") {
    ?>
    <a href="[[::prevPageLink]]"><span class="page">上一页</span></a>
    <?php
}
for ($i = 0; $i < $max_page; $i++) {
    $tmp_page = $i + 1;
    $link = $base_url . "/" . $tmp_page . "/";
    $current_css = ($tmp_page == $current_page) ? "now-page" : "";
    echo "<a href='" . $link . "' class='" . $current_css . "'><span class=\"page\">第" . $tmp_page . "页</span></a>";
}
if ($nextPageLink != "#") {
    ?>
    <a href="[[::nextPageLink]]"><span class="page">下一页</span></a>
    <?php
}
if ($finalPageLink != "#") {
    ?>
    <a href="[[::finalPageLink]]"><span class="page">尾页</span></a>
    <?php
}
?>

关键的突破口就来来自于:

$params = get_defined_vars();
$passData = $params["this"]->passData;

用get_defined_vars()这个系统函数,获取到了当前上下文环境中可用的所有变量。然后发现了变量$this,进而找到了passData属性,进而可以修改传递到模板上用于替换的变量们。思路比较奇葩,大家就看看吧。哈哈。当然了,目前来看就用

$this->passData

就可以访问相关的变量了,但是为了记录思路过程,这里还是把get_defined_vars()贴了出来。但是这里的get_defined_vars在非登陆状态下居然拿不到数据,很邪门。

 【源码】代码片段及相关软件点此获取

 【bw】秘籍文章入口,仅传授于有缘之人   bw    theme

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!