我们在修改和自己创新wordpress模板的时候,经常会遇到while(has_post()):the_post()的循环,例如首页,我们几乎不能忘记这循环的重要意义,即这是出现文章及其各个属性的唯一充要条件。不过,我们使用这种文章的循环的时候,应该想到,主页里显示了最新文章,分类页显示了该分类的最新文章,内容页只显示该文章。那么我想在这些页面不按规则出牌,调用其他文章怎么办?query_post()帮我们完成这一想法。网上关于它的用法的文章有很多,但都只针对一方面,本文稍详细的讲解其用法。

query_post顾名思义即查询调用对应条件的文章,其参数即我们需要的条件,这些条件可以是分类、文章ID或title、排序方式等等。具体用法如下:

query_posts('showposts=5&caller_get_posts=1');

while (have_posts()) : the_post();

echo '

';the_title();echo '';

endwhile;

wp_reset_query();

上面这段代码即为本站调用5篇最新文章的代码。第一行的意思是执行查询最新的五篇文章,并且不管置顶文章,只管按发表时间的新老输出。第二行开始是我们熟悉的文章的循环,和我们熟悉的输出没有任何区别,最后一行是重置上面的查询,主要为了防止在按随即调用输出时造成这段代码后面的文章输出,最好是每次都用上。

接下来详细讲一下query_post()的参数:

wp_query会忽视通过URL接收到的其它的参数,如果想不忽略,可以在调用中使用$query_string。

$query_string=$_GET['p'];//或你其他想要的形式,一般是分类或标签

query_posts($query_string . "&order=ASC")

设置文章显示的顺序,但是不干扰其余的查询字符串,参数前须有“&”符号

主页不显示某一分类下的日志

if (is_home()) {

query_posts("cat=-3");

}

获得特定的日志

query_posts('p=5');

获得特定的页面

query_posts('page_id=7');????? //只返回单独页面7

?>

query_posts('pagename=about'); //只返回《关于》网页

?>

query_posts('pagename=parent/child'); // 返回母网页的子网页

?>

创建所有文章列表,并且提供分页功能

query_posts($query_string.'posts_per_page=-1');

while(have_posts()) { the_post();

put your loop here ;

}

?>

类别参数

显示属于某个类别的文章

cat

category_name

根据ID显示一个类别

只显示来自一个类别ID的文章

query_posts('cat=4');

根据名称显示一个类别

只显示属于某个类别名的文章

query_posts('category_name=Staff Home');

显示几个类别及ID

显示属于几个类别ID的文章

query_posts('cat=2,6,17,38');

删除某个类别的文章

显示所有的文章,但是类别ID前面有个’-'(负号)负号的类被除外。

query_posts('cat=-3');

删除属于类别3的所有文章。有一个限制性条款:会删除只属于类别3的所有文章。如果一个类别也同时属于其它的类别,这个类别仍然不会被删除。

标签参数

显示与某个标签相关的文章

tag

为某个标签提取文章

query_posts('tag=cooking');

获得拥有任何这样的标签的文章

query_posts('tag=bread,baking');

获取拥有这三个标签的文章

query_posts('tag=bread+baking+recipe');

作者参数

你也可以根据作者限制文章数目

author_name=Harriet

author=3

author_name在 user_nicename区操作, 同时作者 在作者id上操作。

文章 &独立页面参数

返回一篇单独的文章或者一个单独的网页

p=1 – 使用文章 ID来显示第一篇文章

name=first-post – 使用 post Slug 显示第一篇文章

page_id=7

pagename=about

showposts=1 (你可以使用 showposts=3,或者其它的任何数字显示一定数目的文章)

由于 模板层级方面的原因, home.php先执行了。这意味这你可以编写一个home.php,home.phh调用query_posts()重新得到一个特别的网页并且将那个网页设置为你的首页。没有任何插件或者hacks,你需要运行一个机制,并且显示和维护一个非博客的首页。

更有用的方法,可能是利用WP的网页功能并且为你的首页使用这个功能。你可以将”关于网页”设置为entry point或者设置为站点的末页。你可能执行一些更动态的步骤,设置一个自定义网页,显示最近的评论,文章,类别,存档。请看看下面的例子。

时间参数

得到某个特别的时间段内发表的文章

hour=

minute=

second=

day= – 一个月中的每一天; 显示,例如,十五号发表的所有文章。

monthnum=

year=

网页参数

paged=2 -显示使用”以前发表的文章”链接时,通常在网页2上显示的文章。

posts_per_page=10 -每个网页显示的文章数目;-1这个值,会显示所有的文章。

order=ASC -按时间顺序显示文章,以相反的顺序显示DESC(默认)

Offset 参数

你不能转移或者忽视一个或者更多的原始文章,这些文章一般是你的query同时使用offset参数收集到的。

下面的函数会显示(1)最近的5篇文章

query_posts('showposts=5&offset=1');

根据参数排序

根据这个区给得到的文章排序

orderby=author

orderby=date

orderby=category

orderby=title

orderby=modified

orderby=modified

orderby=menu_order

orderby=parent

orderby=ID

orderby=rand(随机)

同时考虑”ASC”(升)或者的”DESC”的排序参数

联合参数

你可能从上面的例子中注意到,你使用一个&(&符号)将参数组合在一起,像:

query_posts('cat=3&year=2004');

类别13,关于当前月份显示在主页上的文章:

if (is_home())? {

query_posts ($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp'))); }

在2.3版本中,这个参数组合会返回属于类别1同时属于类别3的文章,只显示两篇(2)文章,根据标题,按降序排列:

query_posts(array('category__and'=>array(1,3),'showposts'=>2,'orderby'=>title,'order'=>DESC));

在2.3和2.5版本中,你可能期待下面的内容,返回属于类别1并且标签为”苹果”的所有文章

query_posts('cat=1&tag=apples');

一个bug阻止这个运行。请看看Ticket #5433,一个工作区要搜索几个使用+的标签

query_posts('cat=1&tag=apples+apples');

对于先前的查询,这个会产生期待的结果。注意使用’cat=1&tag=apples+oranges’能够产生期待的结果。

通过上面的学习,我们就可以用query_post()来实现很多调用了,只需要用文章最开头给出的那段代码和后面的参数,你可以完美的调用自己想要的文章列表,例如属于某几个分类的含有某标签的最新5篇文章并按发表时间降序排列、随机调用10篇文章(如本站每篇文章都有随机推荐文章)等等文章调用。当然你还可以发挥自己的想象,充分利用php的结构化程序特点,在不同的页面调用不同的文章,如用is_paged()判断是否为分页面,然后如果分页的话调用几篇同类目下的文章等等。

好了,关于query_post()的介绍就到这里,希望对你有用。

?php query_posts(cat)?,query_posts()函数 (wordpress日志调用)相关推荐

  1. ?php query_posts(cat)?,query_posts函数使用方法小结

    query_posts是wordpress非常好用的调用文章函数,可以调用某个分类.标签.日期及作者等不同范围的文章列表.下面随小编一起来看看query_posts函数使用方法小结 首先是query_ ...

  2. ?php query_posts(cat)?,你未必知道的query_posts使用技巧

    Query_posts语句是WordPress最实用的语句之一. 正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容. Query_posts的魅力在于 ...

  3. 板邓:wordpress标签调用函数大全

    WordPress模板基本文件 style.css 样式表文件 index.php 主页文件 single.php 日志单页文件 page.php 页面文件 archvie.php 分类和日期存档页文 ...

  4. wordpress代码调用大全

    <a href="<?php echo get_option('home'); ?>" target="_blank">网站地图< ...

  5. action中写php函数,WordPress中add_action(将函数连接到指定action)

    WordPress中add_action(将函数连接到指定action) 首先说下WordPress中用的钩子,将一个函数,以一个新的动作命名,该函数就是 语法: 1 2 3 add_action($ ...

  6. c语言有参有类最小公倍数,【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数...

    程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...

  7. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  8. JavaScript中函数四种调用模式

    目录 JS中函数的四种调用模式 函数调用模式 方法调用模式 构造器调用模式 上下文调用模式 JS中函数的四种调用模式 在函数的调用模式中感觉最大的区别就是: this指向 函数调用模式 即通过函数名直 ...

  9. 【整理】Linux驱动中,probe函数何时被调用

    声明:以下主要内容参考自: 关于struct device_driver结构中的probe探测函数的调用 http://blog.chinaunix.net/u2/71164/showart.php? ...

最新文章

  1. Java 内存 关系_内存一致性 – 发生在Java之前的关系
  2. Android OTA在线升级二(升级包编译原理分析) 【转】
  3. 认证篇——单向散列函数
  4. 长时间整理的xhtml网页设计规范
  5. Windows+Caffe(Faster RCNN/RFCN/SSD)编译(Cuda7.5+Cuda8.0)未完待续
  6. 透过汇编另眼看世界之多继承下的虚函数函数调用
  7. Mysql数据库安全性问题【防注入】
  8. 【转】WebSocket初探
  9. 复旦大学计算机学院专业硕士学费,复旦大学计算机在职研究生学费一年要交的学费多少?...
  10. Linux环境下安装SVN
  11. 字体靠右代码_html中怎么把文字往右移
  12. 超级账本(关键概念)
  13. 图解SM2算法流程——第1章 概述
  14. Linux中如何查看命令帮助手册
  15. 主动外观模型(AAM)
  16. Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW)
  17. 关于自动生成数据集的一些事
  18. 【Docker】基础(二)
  19. 拆解一个比亚迪的车钥匙,这个黑黑的元器件是什么?
  20. Swift —— 指针

热门文章

  1. uniSWF使用注意事项
  2. Grails 1.2参考文档速读(19):插件
  3. Tensorflow模型的保存与恢复的细节
  4. C# Winform 未能加载文件或程序集System.Data.SQLite或它的某一个依赖项。试图加载格式不正确的程序...
  5. Application.DoEvents()的使用
  6. js 格式化日期 (/Date(1400046388387)/)
  7. javaweb学习总结(十四)——JSP原理
  8. sql server 2008学习12 事务和锁
  9. linux avd 界面,Android Studio创建AVD
  10. idea中查看类中所有方法列表(Alt+7)(亲测)