EMLOG侧边栏判断仅首页显示友情链接

    选择打赏方式

正常来说,现在的各种emlog模板侧边栏基本上都是加载全部已添加的侧边栏,但是我想让友情链接一项只在首页出现,其他页面打开都是不加载的,只需要简单修改几行代码就能解决!

1.打开模板根目录下的module.php文件,添加如下代码(如果已经有了就不加):

<?php //判断是否是首页
function blog_tool_ishome(){if (BLOG_URL . trim(Dispatcher::setPath(), '/') == BLOG_URL){  return true; } else { return false;}}?>

注:如果你的模板有pjax无刷新加载功能,则需要改变一下(?_pjax=%23pjax_recho是我网站的pjax容器,请自行修改为你的):

<?php //判断是否是首页
function blog_tool_ishome(){if (str_replace("?_pjax=%23pjax_recho","",BLOG_URL . trim(Dispatcher::setPath(), '/')) == BLOG_URL){  return true; } else { return FALSE;}}?>

2.打开模板根目录下的side.php文件,找到该串代码:

if (function_exists($callback)) {
    preg_match("/^.*\s\((.*)\)/", $widget_title[$val], $matchs);
    $wgTitle = isset($matchs[1]) ? $matchs[1] : $widget_title[$val];
    call_user_func($callback, htmlspecialchars($wgTitle));
}

修改为:

if ($val === 'link') {
    if (blog_tool_ishome()) {
        if (function_exists($callback)) {
            preg_match("/^.*\s\((.*)\)/", $widget_title[$val], $matchs);
            $wgTitle = isset($matchs[1]) ? $matchs[1] : $widget_title[$val];
            call_user_func($callback, htmlspecialchars($wgTitle));
        }
    }
} else {
    if (function_exists($callback)) {
        preg_match("/^.*\s\((.*)\)/", $widget_title[$val], $matchs);
        $wgTitle = isset($matchs[1]) ? $matchs[1] : $widget_title[$val];
        call_user_func($callback, htmlspecialchars($wgTitle));
    }
}

到此,侧边栏判断仅首页显示友情链接功能就已经实现了,原理很简单:先判断当前加载的侧边栏组件是否为link友情链接组件,然后在执行首页判断函数,只有当是首页的时候才会继续下一步。

版权声明:若无特殊注明,本文为《傲世》原创,转载请保留文章出处。
本文链接:https://www.recho.cn/141.html
正文到此结束

热门推荐

发表吐槽

匿名评论 请叫我雷锋~

你还可以输入 250 / 250 个字

呵呵 哈哈 吐舌 开心 笑眼 可怜 乖 啊 你懂得 不高兴 生气 汗 黑线 哭 真棒 阴险 鄙视 酷 滑稽 纳尼 疑问 委屈 惊讶 勉强

评论信息框
可使用QQ号实时获取头像自动填写

私密评论

吃奶的力气提交吐槽中...

已有2条吐槽

寒星皓月

2020-12-24 08:56 上海市电信
文章开头说“但是我想让友情链接一项在每个页面都出现”??? face
  Windows 10 x64    Google Chrome 87.0.4280.88

小傲世

2020-12-24 09:11 广东省深圳市龙岗区电信
@寒星皓月:谢谢提醒,脑子抽了,已核实为笔误并修正。
  Windows 7 x64    Firefox 84.0