Typecho根据文章cid获取文章信息
早期写Typecho主题时有些文章调用都是用的从数据库直接读取,现在新版Typecho里有些方法被移除了,加上之前的不规范的调用现在已经没法在新版Typecho中使用了,从泽泽那里了解到一个新的文章调用方法,大家可以使用下面代码:
如下代码,其中cid=1就是获取cid为1的文章信息,可以改成你需要获取的文章cid。
<?php $ji=Helper::widgetById('Contents', '1'); ?>
标题:<?php $ji->title(); ?>
链接:<?php $ji->permalink(); ?>
描述:<?php $ji->description(); ?>
文章创建时间:<?php date('Y年m月d日',$ji->created); ?>
文章修改时间:<?php date('Y年m月d日',$ji->modified); ?>
另外这个方法也可以调用分类和tag标签等数据。
参考:https://typecho.work/archives/480.html
如果你不想用上面的方法也可以自己像我一样从content表中直接读取数据自己拼接文章链接:
function getPostUrl($index_url, $cid, $slug, $category, $time){
$today = date("Y-m-d", $time);
$todayArr = explode('-', $today);
$year = $todayArr[0];
$month = $todayArr[1];
$day = $todayArr[2];
$rule = Typecho_Widget::widget('Widget_Options')->routingTable['post']['url'];
$rule = preg_replace("/\[([_a-z0-9-]+)[^\]]*\]/i", "{\\1}", $rule);
$part_url = str_replace(array('{cid}', '{slug}', '{category}', '{directory}', '{year}', '{month}', '{day}', '{mid}'),
array($cid, $slug, $category, '[directory:split:0]',
$year, $month, $day, 1), $rule);
$part_url = ltrim($part_url, '/');
$siteurl = $index_url;
if (!Typecho_Widget::widget('Widget_Options')->rewrite) {
$siteurl = $siteurl . 'index.php/';
}
$post_url = $siteurl . $part_url;
return $post_url;
}
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。