我们在修改和自己创新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. linux下的Tomact是什么
  2. LeetCode-剑指 Offer 10- II. 青蛙跳台阶问题
  3. delphi中採用bpl共享模塊的幾點釋疑
  4. chapter3.1封装和解构
  5. SOA对微服务的残余影响
  6. LeetCode 514. 自由之路(记忆化递归 / DP)
  7. java 多重压缩下载_Java 多文件边压缩边下载
  8. Mysql命令行下实现数据的导入
  9. HDU1198-----并查集
  10. linux经典书籍推荐
  11. Ubuntu下安装JRTPLIB
  12. ROS 摄像头校准与Apriltag标签使用
  13. “己欲立而立人,己欲达而达人。”
  14. Python re库match(),serach(),findall()和finditer()方法使用
  15. 在线重建索引 oracle,ORACLE重建索引详解
  16. 【金融财经】金融市场一周简报(2017-09-15)
  17. java话费充值代码_话费充值接口示例代码
  18. python是一种解释型、面向什么的计算机程序设计语言_python语言是一种什么类型...
  19. 第1108期AI100_机器学习日报(2017-09-30)
  20. 高校实验室设备预约管理系统

热门文章

  1. vSphere ESX 4 安装图解
  2. MVC5管道处理模型
  3. 消息中间件的实现方案
  4. 详解ASP.NET页面的aspx扩展
  5. Apache支持ASP.NET方法浅析
  6. (转)java datetime date 类型
  7. RPC框架(一)RPC简介
  8. Nginx+Lua(OpenResty) HelloWorld
  9. Linux的解压报错tar: Error is not recoverable: exiting now
  10. Mysql升序排序对为空的排在最后面is null