typecho教程与模板开发必备
时间:2016-04-23
本文向码农介绍如何开发Typecho插件教程,对需要学习Typecho插件开发的码农说有一定的阅读价值,感兴趣的码农可以参考一下本文章。
1、文章title设置,使得对搜索引擎足够友好
【博客首页】---> 博客名称 - 博客描述
【归档页面】---> XXXX/XX - 博客名称
【文章页面】---> 文章标题 - 博客名称
【独立页面】---> 页面标题 - 博客名称
【分类页面】---> 分类名称 - 博客名称
【标签页面】---> 标签 - 博客名称
<title><?php if($this->is('index')): ?><?php $this->options->title(); ?>-<?php $this->options->description(); ?>
<?php elseif($this->is('archive')): ?><?php $this->archiveTitle('/','',' - '); ?><?php $this->options->title(); ?>
<?php else: ?><?php $this->archiveTitle('','',' - '); ?><?php $this->options->title(); ?><?php endif; ?></title>
附论坛的两种不同的设置:
【博客首页】博客名称
【独立页面】页面标题 - 博客名称
【分类页面】分类名称 - 博客名称
【标签页面】Tag: 标签 - 博客名称
【存档页面】存档: XXXX年XX月 - 博客名称
【其它(日志页)】页面标题
<title>
<?php if ($this->is('index')){$this->options->title();}
elseif($this->is('page')){$this->archiveTitle('','',' - ');$this->options->title();}
elseif($this->is('category')){$this->archiveTitle('','',' - ');$this->options->title();}
elseif($this->is('tag')){$this->archiveTitle('','Tag: ',' - ');$this->options->title();}
elseif($this->is('archive')){$this->archiveTitle('年','存档: ','月 - ');$this->options->title();}
else{$this->archiveTitle('','','');}?>
</title>
<title><?php $this->archiveTitle('', '', ' - '); ?><?php $this->options->title(); ?>-<?php $this->options->description();?></title>
2、相关文章的调用:
<?php $this->related(5)->to($relatedPosts); ?>
<?php if ($relatedPosts->have()): ?>
<?php while ($relatedPosts->next()): ?>
<li>
<a href="<?php $relatedPosts->permalink(); ?>" title="<?php $relatedPosts->title(); ?>"><?php $relatedPosts->title(); ?></a> <small class="info"><strong><?php $relatedPosts->author(); ?></strong> post in<?php $this->date('Y-m-d H:i:s'); ?></small>
</li>
<?php endwhile; ?>
<?php else : ?>
<li>No Related Post</li>
<?php endif; ?>
3、输出所有Tags
<?php $this->widget('Widget_Metas_Tag_Cloud') ->parse('<span class="tagcloud"><a href="{permalink}">{name}</span></a>'); ?>
4、分页只显示新文章、旧文章
<?php $this->pageLink('? 新文章','prev'); ?>
<?php $this->pageLink('旧文章 ?','next'); ?>
5、测边栏每月归档后面显示文章数
<?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=Y年m月')
->parse('<li><a href="{permalink}">{date}</a> <span id="ignore">({count})</span></li>'); ?>
6、复制文章时带版权
<script type="text/javascript">
document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text){ text = text + "\r\n本篇文章来源于<?php $this->options->title(); ?>|<?php $this->options->siteUrl(); ?>,原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }
</script>
标签云
<?php $this->widget('Widget_Metas_Tag_Cloud', 'ignoreZeroCount=1&limit=20′)->to($tags); ?>
<?php while($tags->next()): ?>
<a href=”<?php $tags->permalink(); ?>”><?php $tags->name(); ?></a>
<?php endwhile; ?>
最新文章
<?php $this->widget('Widget_Contents_Post_Recent')->to($post); ?>
<?php while($post->next()): ?>
<a href=”<?php $post->permalink(); ?>” title=”<?php $post->title(); ?>”>
<?php $post->title(25, '…'); ?></a>
<?php endwhile; ?>
相关内容
<?php $this->related(5)->to($relatedPosts); ?>
<?php while ($relatedPosts->next()): ?>
<a href=”<?php $relatedPosts->permalink(); ?>” title=”
<?php $relatedPosts->title(); ?>”><?php $relatedPosts->title(); ?></a>
<small><strong><?php $relatedPosts->author(); ?></strong> post in
<?php $this->date('Y-m-d H:i:s'); ?></small>
<?php endwhile; ?>
日期归档
<?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=F Y')->parse('<li><a href=”{permalink}”>{date}</a> ({count})</li>'); ?>
友情链接 要装插件
<?php PageToLinks::output('links', 'h3', 'ul'); ?>
头部
<?php $this->keywords('_'); ?> //关键词
<?php $this->options->title(); ?> //站点名称
<?php $this->options->description(); ?> //站点描述
<?php $this->archiveTitle(); ?> //标题
<?php $this->options->themeUrl('ie.css'); ?> //模板路径
<?php $this->options->siteUrl(); ?> //主页网址
<?php $this->options->feedUrl(); ?>
<?php $this->options->commentsFeedUrl(); ?>
<?php $this->pageNav(); ?> //分页
<?php $this->options->generator(); ?> //版本号
文章页面
<?php $this->title(); ?> //标题
<?php $this->category(','); ?> //分类
<?php $this->tags(', ', true, ''); ?> //标签
<?php $this->date('F jS, Y') ?> //时间
<?php $this->content(); ?> //内容
<?php $this->thePrev('« %s', ''); ?> //上一篇
<?php $this->theNext('%s »', ''); ?> //下一篇
全部文章列表代码,可以应用在任何地方:
<?php $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->parse('<li>{year}-{month}-{day} : <a href="{permalink}">{title}</a></li>'); ?>
全部标签集列表
<?php $this->widget('Widget_Metas_Tag_Cloud')
->to($taglist); ?><?php while($taglist->next()): ?>
<li><a href="<?php $taglist->permalink(); ?>" title="<?php $taglist->name(); ?>"><?php $taglist->name(); ?></a></li>
<?php endwhile; ?>
全部日志数量:
<?php $stat = Typecho_Widget::widget('Widget_Stat') ;echo ".$stat->PublishedPostsNum."; ?>
使用这个方法,可以自定义首页的文章显示条数,以及自定义分类文章显示:
function themeInit($archive) {
if ($archive->is('index')) {
$archive->parameter->pageSize = 10; // 自定义条数
}
}
或者:
function themeInit($archive) {
if ($archive->is('category', 'default')) {
$archive->parameter->pageSize = 10; // 自定义条数
}
}
调用某分类文章,pageSize是数量,mid是分类号:
<?php $this->widget('Widget_Archive@index', 'pageSize=6&type=category', 'mid=1')
->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
侧栏评论忽略博主评论
<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>
- 妙趣横生的HTML5 Page Visibility API
- 禁止/移除 WordPress 4.2 中前台自动加载的 emjo 脚本
- 项目管理方面的几个.NET开源项目
- 如何向十岁以下的朋友解释编程?这个说法碉堡了!
- 快速比较和合并文件
- 前端页面中 iOS 版微信长按识别二维码的bug 与解决方案
- .NET Mass Downloader -整体下载.NET源码
- Android中Button
- Pycharm中一些不为人知的技巧
- Silverlight 2.0 beta1 堆栈
- 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
- Android中EditText
- 比特币分叉了,这到底是怎么回事?
- Excel导入导出数据库01
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 使用elasticsearch-dump迁移elasticsearch集群数据
- Python爬虫之scrapy的入门使用
- 告别传统工业互联网,提高数字管控思维:三维组态分布式能源站
- 爱奇艺iOS移动端网络优化实践:请求成功率优化
- Java数据类型
- Python爬虫之scrapy构造并发送请求
- Python爬虫之scrapy模拟登陆
- Python爬虫之scrapy中间件的使用
- Python爬虫之scrapy_redis原理分析并实现断点续爬以及分布式爬虫
- Python爬虫之scrapy_splash组件的使用
- Python爬虫之scrapy的日志信息与配置
- Python爬虫之scrapyd部署scrapy项目
- 最近发现一个很有趣的随机小姐姐视频源码 分享给大家
- Codeforces Round #633 (Div. 2)C Powered Addition (贪心,二进制)
- Spring 整合 JUnit