Typecho 文档:通过页面链接获取标题
适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/attachment/3829/
许可方式:CC BY-NC-SA
注意:此文档源于作者在博客改造中的一些经验总结,转载还请署名。
敬告:此文档操作涉及程序核心文件的修改,作者不对你在使用中产生的任何问题造成的不良后果,承担责任。
文档说明
在制作站点统计插件 Lopwon Stats 时,有一个需求:已知访客访问页面的链接,要获取该页面的标题,将其显示在面板中,以便查看。一种可以使用 JS 的 fetch 发送请求,以正则匹配页面的 <title>
标签内容,即插件 Lopwon Stats 采用的方式,优点是按需显示;另一种可以在后端查询数据库,一次性显示,适合文章量较少时,即本文档介绍的。
使用方法
A 涉及文件
usr/themes/***/functions.php
B 改造文件
作用:通过页面链接获取标题
1. 打开文件 usr/themes/***/functions.php 添加以下代码:
function getTitle($path) {
$db = Typecho_Db::get();
$result = $db->fetchAll(
$db->select()
->from('table.contents')
->where('table.contents.type = ? OR table.contents.type = ? OR table.contents.type = ?', 'post', 'page', 'attachment')
);
foreach ($result as $lopwon) {
$pushValue = Typecho_Widget::widget('Widget_Abstract_Contents')->push($lopwon);
$permalink = $pushValue['permalink'];
if (stripos($permalink, $path) !== false) {
return $lopwon['title'];
}
}
return null;
}
至此,通过调用 getTitle($path); 如:getTitle('/888.html'); 即可显示该页面的标题。