typecho 判断调用某个独立页面模板的页面链接
为模板适配友情链接插件时,首页除了显示首页友链外,还需要显示更多友链的按钮,点击后进入 友情链接 的内页,那么就会出现两个问题,一个是怎么获取这个链接因为这个链接其实并不固定,用户可以随便设置,二是用户如果没创建链接呢。
方案
于是乎就有了如下函数,独立页面的模板是link.php
,我们针对它来写函数即可。
function linkpage() {
$db = Typecho_Db::get();
$result = $db->fetchRow($db->select()->from('table.contents')->where('type=?', 'page')->where('status=?', 'publish')->where('template=?', 'link.php')->limit(1));
if($result) {
$f=Helper::widgetById('Contents',$result['cid']);
$permalink = $f->permalink;
return $permalink;
} else {
return false;
}
}
上面的函数就可以判断link.php
是否存存,存在的话就返回这个链接。
调用方法
<?php if(linkpage()): ?>
<a href="<?php echo linkpage(); ?>" class="text-sm text-sky-500" title="更多链接">更多链接</a>
<?php endif; ?>