标签 文章样式 下的文章

enter image description here

其实这个想法很早之前就有了,只是一直没付诸行动,做N3、N4的时候用到了自定义字段,为文章添加缩略图,方法很简单,而本文中讲介绍一下怎样用同样的方法,为文章添加不同的文章样式。

说说形式

WordPress早在 3.1 版本中便引入的文章形式这个功能了,是文章的一种属性,可以被主题用来决定文章的显示方式。其设计目的是要提供一个特殊的方法来根据文章的特点选用显示“格式”。

wordpress的方法很简单,因为程序自带此功能,根据官方文档就可以快速修改主题;而Typecho因为其自身精简,则不会加入此选项,但是我们可以使用其他方法实现,比如@沐风的插件,而我向来不喜欢安装多余的插件,所以想到了使用自定义字段的方式。

首先贴出参考代码

<?php if(isset($this->fields->say)){ //自定义字段“say” ?>
此处为say字段的样式,说说形式
<?php }else{; //如果文章没有定义say字段则else。 ?>
此处为普通文章样式
<?php }; ?>

字段名称为“say”, 字段值 任意或留空 由此可以看出,实现的方法非常简单,我这里仅仅是提供了php,具体代码和样式还需自行修改,如果想实现多种文章样式,多添加几个else即可。

到这里,自定义文章形式的教学就结束了,那么如何为文章添加缩略图呢?

其实网上很多代码,都可以很简单的获取文章首图,但是这些通过正则获取的方法好像并不支持Markdown编辑器,也就是说无法获取使用Markdown撰写的文章的图片,那么怎样更优雅的为文章添加缩略图呢?自定义字段即可。

参考代码:

<?php if(isset($this->fields->post_img)){ //自定义字段“post_img” ?>
<img src="<?php echo $this->fields->post_img;?>"/>
<?php };?>

把上面代码放进index.php合适的位置,字段名称为“post_img”,只需要在 字段值 中添加一张图片的链接即可 自定义字段的强大之处并不局限于此,想法很重要,实现很简单。

WordPress早在 3.1 版本中便引入的文章形式这个功能了,是文章的一种属性,可以被主题用来决定文章的显示方式。其设计目的是要提供一个特殊的方法来根据文章的特点选用显示“格式”。该方法用于替代以前需要使用分类来达到同样目的的做法,而且更重要的是,该方法在支持的主题间是通用的。

怎么说呢,这个功能就是定义某一篇文章在列表中展现的形式,样式可以自己随便的DIY,以后发表文章时,可以选择发表的形式,可以只写一句话像微博一样,可以单独分享一个图片、视频或者音乐,而且因为展现形式区别于其他文章的形式,往往关注量也会高些。

目前支持以下文章格式:

  • 日志(aside) - 典型样式就是没有标题。类似于 Facebook 或人人网中更新的一条日志。
  • 相册(gallery) - 图像陈列厅。文章中通常会有“gallery”代码和相应的图像附件。
  • 链接(link) - 链接到其它网站的链接。主题可能会使用文章中的第一个 <a href=""> 标签作为文章的外部链接。有可能有的文章至包含一个 URL,那么这个 URL 将会被使用;同时,文章标题(post_title)将会是附加到它的锚的名称。
  • 图像(image) - 单张图像。文章中的首个 <img /> 标记将会被认为是该图片。另外,如果文章只包含一个 URL 链接,则被认为是该图片的 URL 地址,而文章标题(post_title)将会作为图片的标题属性。
  • 引语(quote) - 引用他人的一段话。通常使用 blockquote 来包裹引用内容。或者,可能直接将引语写入文章,并将其出处写在标题栏。
  • 状态(status) - 简短更新,通常最多 140 个字符。类似于微博 Twitter 状态消息。
  • 视频(video) - 单一视频。文章中第一个 <video /> 或 object 或 embed 将被作为视频处理。或者,文章可以仅包含视频的 URL,甚至一些主题和插件可以支持自动嵌入您的文章附件中的视频。
  • 音频(audio) - 一个音频文件。可以用于播客(podcasting)等。
  • 聊天(chat) - 聊天记录,类似于:
注意:当编辑文章时,若没有指定文章样式,则默认使用“标准”。同样,若指定了一个无效的文章形式,那么也将默认使用标准样式。

官方那些我就不复制下来了,复制下来基本也不会,直接贴代码吧

add_theme_support( 'post-formats', array( 'status', 'aside', 'gallery', 'video', 'audio' ) );

标注颜色的依次的顺序是:状态、日志、相册、视频、音频,你可以上面的支持格式添加或删减

把上面的代码copy到主题的functions.php(模板函数)里,怎么正确的粘贴我就不废话了,如果你不会,那么你可以直接评论了。

然后修改你主题的index.php(有的主题可能是loop.php或者其他,具体参见自己的主题)

把循环的部分替换成下面代码

<?php if( has_post_format( 'status' )) { //状态 ?>
状态样式
<?php } else if ( has_post_format( 'aside' )) { //日志 ?>
日志样式
<?php } else if ( has_post_format( 'gallery' )) { //相册 ?>
相册样式
<?php } else if ( has_post_format( 'video' )) { //视频 ?>
视频样式
<?php } else if ( has_post_format( 'audio' )) { //音乐 ?>
音乐样式
<?php } else{ //标准 ?>
常规样式
<?php } ?>

当然,具体样式需要你自己慢慢调试了,我贴我的代码没什么意义

OK,希望这篇文章对你有帮助,哦,对了!修改前一定要记得先备份主题,不然出错了我不负责哟~