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('&laquo; %s', ''); ?> //上一篇
<?php $this->theNext('%s &raquo;', ''); ?> //下一篇

全部文章列表代码,可以应用在任何地方:

<?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); ?>

typecho自动显示摘要,158为自动摘要的字数的一半<p><?php $this->excerpt(158); ?></p>
<p class="more"><a href="<?php $this->permalink() ?>" rel="bookmark" title="<?php $this->title() ?>">阅读全文</a></p>

评论输出:<?php $comments->author(true); ?>//输出评论人昵称,参数true为带链接的,false为不带链接的;
//ps.其实还有一个参数,类型也是布尔,作用是是否带noFollow
<?php $comments->excerpt(26, '...'); ?>//输出评论摘要,第一个参数是要截取的长度,第二个是截取后的字符串;
<?php $comments->permalink(); ?>//获取当前评论链接,木有参数;
<?php $comments->title(); ?>//获取当前评论标题,同样木有参数;
<?php $comments->dateWord(); ?>//输出词义化日期,就是输出“3小时前”、“三天前”之内的;
<?php $comments->gravatar(); ?>//调用gravatar输出用户头像,有两个参数,第一个是头像尺寸,默认是32,第二个是默认输出的头像。

文章转自:http://ee19.com/blog/32.html
http://www.binjoo.net/2010/11/typecho-two-tips

查看 comments Typecho sidebar的相关文章

转载本站原创文章请注明:文章转自 挨踢路,链接: https://itlu.org/articles/1547.html

已有 28 条评论

  1. 你懂得太多了!!!!

    1. 其实我不懂的

  2. 那这个是伪原创?不是吧,一定是楼主写得······佩服···

    1. 很明显你没看,不过我可以跟你说,来我这里做广告的话,链接都不算外链的哦.所以,嘿嘿,你明白的.

      1. 怎么做的外链不算?我的站也有类似的广告

      2. 嘿嘿,你看看外链的形式..

      3. 我知道形式很不错,请教下是怎么实现的?是改代码吗?

      4. 是的,改代码的

      5. 方便告诉我方法吗,我也想改成这个样子

      6. 灰狼太坏了

  3. 好好复杂

    1. 如果是来做广告的话,你会失望的,外链全部是没用的哦

  4. 来转转。。

    1. 如果是来做广告的话,你会失望的,外链全部是没用的哦

  5. 来一个死一个,嘿嘿,随便过来寻求外链,上次有个来疯狂垃圾评论的,结果没有效果,第二天就撤退了

    1. 你尽管发多点吧,哈哈 不过滤你的就是了

  6. 路过 来留个脚印

    1. 如果是来做广告的话,你会失望的,外链全部是没用的哦

  7. 来看看啦

    1. 如果是来做广告的话,你会失望的,外链全部是没用的哦

  8. 呵呵!楼主很风趣!没事,进来看看也好。就当练练打字

  9. 收起来以后用

    1. 呵呵,希望对你有用

  10. 辛苦啊,总结了这么多,用wordpress也很长时间了吧

    我的没有考虑这么多代码,一般用All in One SEO Pack插件来搞

    1. 这个插件还不是很好的...

      1. 插件不是万能的,不过降低一下使用门槛,不像你这么强直接面对代码。

      2. 是因为这个插件不是,不是说所有的插件都不好,呵呵.

  11. 不错啊,留着备用。该几行代码什么的最爽了

添加新评论

欢迎 童鞋归来,编辑资料 »