WordPress本质上是一个内容管理系统(CMS),是显示、创建、发布和维护内容的软件。
本文介绍的插件 Display Posts 主要就是用来扩展WordPress关于显示内容这部分的功能。打个比方,内容就是你的菜品,有了很多菜品之后可以组合出各种套餐的菜单。Display Posts 就是这样一个可以帮助你灵活组合套餐的插件。
Display Posts – Easy lists, grids, navigation, and more
Author(s): Bill Erickson
Current Version: 3.0.1
Last Updated: 2019-01-07
display-posts-shortcode.3.0.1.zip
98%Ratings 100,000+Installs WP 3.0+Requires
介绍Display Posts插件之前,有必要先来看一下WordPress中比较重要的一个概念:
WP_Query是定义于
wp-includes/query.php
中的一个用于处理复杂的请求wordpress博客中文章或页面的类。
WP_Query
是wordpress提供的一个类,它支持的参数和方法非常丰富,通过各种给组合查询参数,几乎所有的文章查询都可以通过这个类实现。
Display Posts这个插件其实是对WP_Query 类做的一层高级封装,让用户可以不必手写复杂的WP_Query查询就可以得到想要的过滤结果。尤其是当你的WordPress网站有了很多内容,想在网站的某些地方按某些条件来自由组织已有内容的时候,会显得非常有用,可以通过各种条件来进行花式搜索,自由控制显示的形式,使用也很方便。
作者Bill Erickson是一个资深的WordPress玩家,总共开发了22款插件,总下载量超过120万次, 也拥有自己的WordPress开发公司,帮客户做了不少商业站,客户对其服务评价都不错
安装激活之后即可使用。使用的方法主要有两种:
Display Post支持的参数特别全面。主要包括条件查询参数、显示信息参数、自定义格式参数三类:
下面举几个具体的搜索参数例子:
这是最基本用法,什么参数都不加的话就是默认显示最近的文章,默认结果是10个,呈现结果是一个最简单的带有链接的文章标题列表:
显示最近的文章列表
显示结果如下:
下面的方式可以列出所有tag为python的文章列表,如果你想显示某个目录下的文章,只需要把tag
改为 category
,查询条件可以是id或者名称,也可以把多个查询条件用逗号隔开,比如tag="tag1,tag2"
显示特定TAG的文章列表
显示结果如下:
默认情况下是只显示文章标题和链接,通过一些参数还可以把关于文章的各种信息都显示出来,比如把文章的发布日期用相对时间的形式显示出来:
显示相对日期
显示效果如下:
如果你想把文章的特色图片实现出来,只需要在短码中增加一个参数 image_size=”thumbnail” ,如下
显示文章图片
显示结果如下
可以看到图片的对齐位置有点奇怪,通过增加一点CSS代码就可以灵活的调整图片的位置
.display-posts-listing .listing-item {
clear: both;
}
.display-posts-listing img {
float: left;
margin: 0 10px 10px 0;
}
显示结果可以按照多种条件进行排序,比如想按照标题升序排列,可以加入两个参数 order=”ASC” orderby=”title” 代码和显示结果如下:
对结果进行排序
排序的字段和方法多种多样, 可以参看这里。举几个例子:
在上面的短码中我还加入了其他几个参数,这也是Display Posts这个插件最牛 B的地方之一了,可以通过一些复杂的条件和操作符进行组合查询,比如上面的这段中的:
taxonomy="post_tag" tax_term="genesis-explained" tax_operator="NOT IN"
意思就是:用使用TAG分类法,并且排除tag为genesis-explained
。还可以综合使用目录和tag两种分类发和其他的操作符来进行复杂的查询,详见这里
这也属于高级用法之一了,默认是使用Html中的无序列表ul
,你可以通过参数 wrapper="ol"
来改成有序列表,也可以通过增加wrapper="div"
把每一个结果都包如一个div标签中,以便更好的结合其他工具进行自定义CSS,通过这种方式可以把结果显示成表格、栅格(Grid)等等其他形式,可以玩出花来。
通过上面的几个小例子可以看出这个插件的功能确实非常强大,基本上能满足所有对文章进行查询的需求,插件官网文档写的非常完善,上面也有很一些详细的教程。
最后,还是那句话,内容为王(Content is King),没有内容还排列组合个毛线。。。。