通过wordpress文章形式给博客添加“微博”功能

发表于2016年8月12日

这段时间突然想给博客加一个类似“微博”的功能,百度了一下,发现原来wordpress早在3.1版本就有类似功能:文章形式。

文章形式,是文章的一种属性,你可以自主决定每一种属性的显示方式:一段话、一张图片,一首歌曲、一段视频……都是可以的。只要你为每一种属性用css控制了显示样式。

目前支持以下文章格式:

日志(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) - 聊天记录,一段聊天记录。

实际上除了这些以外还有一个就是标准类型的standard,通常可以作为传统意义上的长文章来对待,当编辑文章时,若没有指定文章样式,则默认使用“标准”。同样,若指定了一个无效的文章形式,那么也将默认使用标准样式。

首先要添加样式功能,在functions.php文件最后的?>前添加以下代码:

1
2
 //文章形式
 add_theme_support( 'post-formats', array( 'status' ) );

由于我只需要一个微博功能,所以只添加了一种文章形式:状态(status)。如果需要其它样式,可参考以下代码:

1
2
 //文章形式
 add_theme_support( 'post-formats', array( 'status', 'aside', 'gallery', 'video', 'audio' ) );

然后,需要修改首页模版(index.php)的主循环,也就是以下代码:

1
2
3
4
5
6
7
8
9
<?php if(have_posts()) : /*博文主循环开始*/ ?>
<?php while(have_posts()) : the_post(); /*如果有博文,输出博文*/ ?>
/*剪切走的内容*/
<?php endwhile; /*博文输出结束*/ ?>
<?php else : /*如果没有博文输出以下信息*/ ?>
<div class="post" id="post-<?php the_ID(); ?>">
        <h2><?php _e('Not Found'); /*翻译用,可用纯文字代替*/ ?></h2>
</div> 
<?php endif; /*博文主循环结束*/ ?>

我之前是把文章显示样式直接写在首页模版的主循环里,但为了以后方便,还是得移出来放在一个单独文件。所以新建文件2个(如果有更多的文章形式需要多建几个):content.php,content-status.php。再把首页模版里的文章显示方式剪切进content.php里,而content-status.php里则修改为你想要的显示方式。首页模版里剪切走的代码用以下代码代替(这是用来调用新建的那几个文件):

1
<?php get_template_part( 'content', get_post_format() ); ?>

接下来就简单了,把content-status.php里的内容用单独的css样式控制输出就OK啦!

上一篇:《
下一篇:《

添加评论

发表评论

  1. Coney

    2016年8月15日 上午9:24 回复

    一开始玩独立博客的时候经常折腾来折腾去,现在实在不高兴啦~

    • 家桥

      2016年8月15日 下午6:24 回复

      我也很少折腾,上一次的折腾还是去年五六月份写这主题的时候,然后再就是这一次了。