typecho 附件页添加描述并加入sitemap.xml
为Typecho附件页添加描述并加入sitemap.xml,方便回忆和搜索引擎优化。
本文最后由 荒野孤灯 更新于 2023 年 11 月 22 日 22 时 02 分,已有 365 天未更新。今日被查阅 10 次,若内容或图片资源失效,请留言反馈,谢谢!
摘要由 AI 智能生成
今天上班摸鱼时意外发现 Typecho
给每张附件图片也都有单独的页面(如:https://80srz.com/attachment/640/),顿时来了个莓用(没啥卵用)的想法,在图片文件页添加图片描述,并添加到 sitemap.xml
中。
莓用想法之科学解释
- 既然上传的图片有单独的前端展示页面,我们加上图片描述后,能够方便日后我们快速的回想起拍照时的感想、心情,再次触发心灵深处的那沉寂许久的小鹿,感觉对我们这种个人博客站长还是蛮有意义的;
- 添加到
sitemap
中,能够让你上传一张图片,在搜索引擎眼中,你又水了一篇文章,美滋滋……(有没有卵用,我也不知道!) - 后面我还想做一个前端相册,但苦于根本不懂技术,没法搞,有大佬愿意的话,可以花几秒钟给整个……拜谢!
功能实现经过
研究分析
花了几个世纪研究 https://80srz.com/attachment/640/ 页面代码及 typecho
系统文件、 数据表结构,还是被我这小白整明白了,不得不说 typecho
真真滴适合小白使用,总结为以下几点:
- 图片前端展示页用的是主题的
page.php
模板; - 图片即(attachment)、页面(page)、文章(post) 共同存储在
typecho_contents
数据表中;type
分别是attachment
、page
、post
; BaiduSubmit
地图插件中由Action.php
负责输出sitemap.xml
数据;
修改 page.php 模板文件
在 <?php parseContent($this); ?>
代码后面加上判断文件是否是图片,如是,则输出图片描述;不是就不输出内容;代码如下:
<?php if ($this->attachment->isImage): ?>
<p><h3>“<?php $this->attachment->name();?>”的描述:</h3><br/><span style="padding-left:40px;"><?php $this->attachment->description();?></span></p>
<?php endif; ?>
DIY BaiduSubmit 地图插件
声明:本人纯小白,BaiduSubmit
地图插件 DIY
过程就是看着代码是那么回事就复制,然后将字段改成 attachment
,还真能行!哈哈……谁都不服,就服我自己??
以下是我对 BaiduSubmit
地图插件中 Action.php
文件 DIY
的几段代码:
52行:
$attachments = $db->fetchAll($db->select()->from('table.contents')
->where('table.contents.status = ?', 'publish')
->where('table.contents.created < ?', $options->gmtTime)
->where('table.contents.type = ?', 'attachment')
->order('table.contents.created', Typecho_Db::SORT_DESC));
84行:
foreach ($attachments AS $attachment) {
$type = $attachment['type'];
$routeExists = (NULL != Typecho_Router::get($type));
$attachment['pathinfo'] = $routeExists ? Typecho_Router::url($type, $attachment) : '#';
$urls[] = Typecho_Common::url($attachment['pathinfo'], $options->index);
}
142行:
$attachments = $db->fetchAll($db->select()->from('table.contents')
->where('table.contents.status = ?', 'publish')
->where('table.contents.created < ?', $options->gmtTime)
->where('table.contents.type = ?', 'attachment')
->order('table.contents.created', Typecho_Db::SORT_DESC));
230行:
foreach($attachments AS $attachment) {
$type = $attachment['type'];
$routeExists = (NULL != Typecho_Router::get($type));
$attachment['pathinfo'] = $routeExists ? Typecho_Router::url($type, $attachment) : '#';
$attachment['permalink'] = Typecho_Common::url($attachment['pathinfo'], $options->index);
echo "\t<url>\n";
echo "\t\t<loc>".$attachment['permalink']."</loc>\n";
echo "\t\t<lastmod>".date('Y-m-d\TH:i:s\Z',$attachment['modified'])."</lastmod>\n";
echo "\t\t<changefreq>monthly</changefreq>\n";
echo "\t\t<priority>0.4</priority>\n";
echo "\t</url>\n";
}
注明:这里我将图片(文件)展示页权重设为 0.4
,月更新 。可根据需要修改 230
行代码。
食用方法
步骤一:(参考前文)研究分析 → 修改 page.php
模板文件;
步骤二:安装《 BaiduSubmit 百度结构化插件魔改版之莓用版》 ,如果用的是“老高 & 迷你日志”的 BaiduSubmit
百度结构化插件魔改版 0.7 版 则直接覆盖上传即可。
下载链接:https://pan.baidu.com/s/1G6vNrxcBs5S8euaM2EZq_Q
前端相册(入口)以后折腾
技术有限,冇法子,慢慢来。
效果
- 图片展示页:https://80srz.com/attachment/640/
sitemap.php
:https://80srz.com/sitemap.xml
免责声明
我也不知道这么搞有没有啥卵用,会不会有啥反效果,反正就是玩呗,有感兴趣的朋友请慎用,由此造成的任何后果,本人不负责!!!
类似功能推荐:typecho给文章标签添加描述( description )字段
分类标签:折腾,typecho,主题模板,工具代码,typecho优化
文章链接:https://80srz.com/posts/559.html
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
这方法很不错
有没有用就不知道了?
来看看啊
rz.sb的主题开卖了?
没有呢,我卖屁股弄来的。
额额,牛逼plus