通过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啦!
2016年8月15日 上午9:24
一开始玩独立博客的时候经常折腾来折腾去,现在实在不高兴啦~
2016年8月15日 下午6:24
我也很少折腾,上一次的折腾还是去年五六月份写这主题的时候,然后再就是这一次了。