引言

在网上看到一个很棒的项目,可以在typecho里嵌入一个中国地图,把自己的所有足迹信息放进去,高亮显示,感觉还很不错,下面是地址:

http://www.lopwon.com/attachment/3741/

成品页面:

某分类页面下展示我的足迹

某分类页面下展示我的足迹

时光机内嵌入我的足迹

时光机内嵌入我的足迹

步骤

下载独立页面的模版文件

首先,先去这个网站(就是上面这个网址)下载一个压缩包:Lopwon-Unlock-pkg

Lopwon网站

Lopwon网站

压缩包里有个名叫Lopwon_Unlock.php的文件,解压出来。

然后找到你的博客网站目录,放到你主题下的目录里。

比如,我的博客网站根目录是/web/blog/

那么就是要放到/web/blog/usr/themes/主题名字/

如果是默认主题,那就是/web/blog/usr/themes/default/下,

我的主题叫handsome,所以这个文件路径就是:/web/blog/usr/themes/handsome/Lopwon_Unlock.php

查找对应城市的编码

你得让程序知道你到底去过哪些城市,这个需要你自己去把去过的城市名字转换为对应城市编码。

两个办法,第一个是通过我博客文章进行查找:

第二个是通过上面的网站,里头提供了一个下载地址

你可以去下载一个名叫AMap_adcode_citycode.xlsx的文件,里头的adcode就是这里的城市编码。

创建独立页面

首先,进入后台,点开撰写菜单,其中的创建页面

创建页面

创建页面

第二步,在弹出的页面里,左侧输入框把上面城市编码列表写出来。

右侧的自定义模板选择,选择这个Lopwon_Unlock

如果这个名字没有,那就要去检查上面是否把那个文件放进去了。

输入城市编码

输入城市编码

如果你不想这个页面正常显示在左侧菜单,可以在高级设置当中,隐藏起来

隐藏

隐藏

我不想让它在左侧显示的原因是:

这个页面打开来光秃秃的,啥也没有,又没有返回按钮,也没有侧边栏

所以,我建议最好以iframe的方式嵌入到其他页面里

如果你没有选择隐藏,创建完成后,就完成了这篇教程了。

如果你想嵌入到其他页面(任何页面都可以)的话,可以看后续的教程

【可选】嵌入时光机页面

这里我选择嵌入时光机页面,当然,你甚至可以嵌入包括首页在内的任意页面的任意位置。

首先,把时光机页面的代码打开,cross.php文件。

具体路径是:你的博客网站/usr/themes/主题名字/cross.php

其中有一个引用文件的代码,引用了component/say.php文件

<?php $this->need('component/say.php') ?>

这里嵌入一行代码:

iframe的方式嵌入到时光机页面里

<iframe src="/996.html" frameborder="0" width="100%" height="300"></iframe>

这里的996.html代表了这个地图独立页面的cid值,你可以改成你自己的。

嵌入代码

嵌入代码

这样就可以看到开头的效果了。

时光机内嵌入我的足迹

时光机内嵌入我的足迹

【可选】嵌入某一个分类页面

与上面的步骤一样,先找到你这个地图独立页面的cid值,比如我这里是996

那么iframe标签应该这么写。

<iframe src="/996.html" frameborder="0" width="100%" height="300"></iframe>

找到分类页面(注意,也同样是首页)

博客网站目录\usr\themes\你的主题名字\libs\Content.php

其中的524行之后,插入你的上述代码

就可以实现显示,如图。

简单嵌入到页面里

简单嵌入到页面里

但是这样的话,就会导致任何页面都输出此iframe标签,所以需要判断一下当前分类的mid是否等于我要的mid值。

另外补充一下外层的盒子,这样显得好看一些。

if (@$obj->categories[0]['mid'] == 81) {
    echo '<div class="panel-small single-post box-shadow-wrap-normal" style="flex: auto;">';
    echo '<iframe src="/996.html" frameborder="0" width="100%" height="300"></iframe>';
    echo '</div>';
}

嵌入到指定的分类页面里

嵌入到指定的分类页面里

PS:如果你不想让屏幕宽度过高的时候,这个足迹页面只占用一半的话

可以另外加一行css代码在这个盒子上:

style="flex: auto;

最后展示一下成品(两种宽度样式):

宽屏展示

宽屏展示

窄屏展示

窄屏展示


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2024 年 12 月 16 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~