使用 Typecho 搭建博客时,难免会对 Typecho 进行一些个性化的定制,因此本文就对使用 Typecho 搭建博客中需要定制化的一些常用函数进行介绍。

阅读文章的过程中如果有任何疑问,欢迎添加笔者为好友,拉您进【七日书摘】微信交流群,一起交流技术,一起打造高质量的职场技术交流圈子,抱团取暖,共同进步。
七日书摘官方群.jpg

1、网站名称

<?php $this->options->title() ?>

2、网站网址

<?php $this->options ->siteUrl(); ?>

3、站点说明

<?php $this->options->description() ?>

4、文章完整路径和标题

<?php $this->archiveTitle(' &raquo; ', < span class="string">'', ' | '); ?><?php $this ->options->title(); ?>

5、模板地址

<?php $this->options->themeUrl(); ?>

6、导入模板文件夹内的php文件

<?php $this->need('.php'); ?> 

7、输出文章或单页面的作者

<?php $this->author(); ?>

8、输出作者gravatar头像

//此处是输出完整的 img 标签,40 是头像的宽高
< ?php $this->author->gravatar('40') ?>

9、作者文章列表链接

//Typecho支持多用户博客时,按作者获取该作者文章连接
<?php $this->author->permalink (); ?>

10、作者个人主页链接

//Typecho 支持多用户博客,此处输出作者个人主页地址
<?php $this->author->url(); ?>

11 、作者的邮箱地址

<?php $this->author->mail(); ?>

12、上一篇与下一篇调用代码

// 上一篇
<?php $this->thePrev(); ?> 
// 下一篇
<?php $this->theNext(); ?>

13、typecho中is语法是否为首页并输出相关内容

<?php if ($this->is('index')): ?>
// 首页输出内容
<?php elseif ($this->is('category')): ?>
// 按照分类输出内容
<?php else: ?>
// 不是首页、分类输出内容
<?php endif; ?>

更多is语法参考:http://docs.typecho.org/themes/is-syntax
14、获取文章或页面评论数

<?php $this->commentsNum('No Comments', '1 Comment' , '%d Comments'); ?>

15、截取文章指定字数(可用于首页显示文章摘要)

// 截取350字并以"..."结尾
<?php $this->excerpt(350, '...'); ?>

16、调用自定义字段

<?php $this->fields->fieldName ?>

17、获取 RSS 地址

<?php $this->options->feedUrl(); ?>

18、获取最新文章

<?php $this->widget('Widget_Contents_Post_Recent', 'pageSize=8&type=category')->parse('<li><a href="{permalink}">{title}</a></li>'); ?>

19、获取分类名称,不带链接

// 不带连接的获取分类
<?php $this->category(',', false); ?>
// 获取所有分类
<?php $this->widget('Widget_Metas_Category_List')->listCategories('wrapClass=widget-list'); ?>
// 自定义分类
<?php $category = NULL; $this->widget('Widget_Metas_Category_List')->to($category); ?>
<?php while ($category->next()): ?>
    <a class="list-group-item list-group-item-action" title="<?php $category->description(); ?>" href="<?php $category->permalink(); ?>"><?php $category->name(); ?></a>
<?php endwhile; ?>

20、获取文章分类列表

<?php $this->widget('Widget_Metas_Category_List')->parse('<li><a href="{permalink}">{name}</a> ({count})</li>'); ?>

21、获取某分类下的POST文章

// 注意参数 mid=1
<?php $this->widget('Widget_Archive@index', 'pageSize=8&type=category', 'mid=1')
->parse('<li><a href="{permalink}" title="{title}">{title}</a></li>'); ?>

22、获取最新评论列表

<?php $this->widget('Widget_Comments_Recent')->to($comments); ?>
<?php while($comments->next()): ?>
    <li><a href="<?php $comments->permalink(); ?>"><?php $comments->author(false); ?></a>: <?php $comments->excerpt(50, '...'); ?></li>
<?php endwhile; ?>

23、首页获取限制条数的最新文章(可用于置顶操作类)

<?php while ($this->next()): ?>
<?php if ($this->sequence <= 3): ?>
    //这里编写html逻辑
<?php endif; ?>
<?php endwhile; ?>

24、获取访客最新评论,只显示访客评论不显示博主自己发的评论

<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>
    <?php while($comments->next()): ?>
    <li><a href="<?php $comments->permalink(); ?>"><?php $comments->author(false); ?></a>: <?php $comments->excerpt(50, '...'); ?></li>
<?php endwhile; ?>

25、文章按时间归档

<?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=F Y')->parse('<li><a href="{permalink}">{date}</a></li>'); ?>

26、获取标签云

// 输出标签云
<?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&ignoreZeroCount=1&desc=0&limit=30')->to($tags); ?>
<?php if($tags->have()): ?>
<ul class="tags-list">
<?php while ($tags->next()): ?>
    <li><a href="<?php $tags->permalink(); ?>" rel="tag" class="size-<?php $tags->split(5, 10, 20, 30); ?>" title="<?php $tags->count(); ?> 个话题"><?php $tags->name(); ?></a></li>
<?php endwhile; ?>
<?php else: ?>
    <li><?php _e('没有任何标签'); ?></li>
<?php endif; ?>
</ul>

// 输出随机颜色标签云
<?php $this->widget('Widget_Metas_Tag_Cloud', 'ignoreZeroCount=1&limit=30')->to($tags); ?>
<ul class="tags-list">
<?php while($tags->next()): ?>
    <li><a style="color: rgb(<?php echo(rand(0, 255)); ?>, <?php echo(rand(0,255)); ?>, <?php echo(rand(0, 255)); ?>)" href="<?php $tags->permalink(); ?>" title='<?php $tags->name(); ?>'><?php $tags->name(); ?></a></li>
<?php endwhile; ?>
</ul>

------完------

更多学习讨论欢迎进入七日书摘官方群: 七日书摘官方群

七日书摘官方群群聊二维码.png

参考资源:
http://docs.typecho.org/
http://www.xysoft.cc/php/typechofunction.html