站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Function Reference/WP Query
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== WP_Query角色== <tt>WP_Query</tt>是<tt>wp-includes/query.php</tt>定义的class,处理WordPress博客上错综复杂的查询。<tt>wp-blog-header.php</tt>(或者2.0版本中的WP class)向<tt>$wp_query</tt> object提供信息,定义当前的查询,然后<tt>$wp_query</tt>决定处理的查询的类型(类别归档?日期归档?feed?搜索?),并且获得查询的文章。查询上仍然留有许多信息,可以稍后处理。 ==方法和属性== 这是<tt>WP_Query</tt>正式的文档。你不能够直接地更改属性,但是可以使用一些方法,处理属性。也看看[[#WordPress:Interacting_with_WP_Query|Interacting with WP_Query]]上的一些函数,避免混乱class internals和全局变数。 ===属性=== <dl> <dt><tt>$query</tt><dd>拥有wp-blog-header.php(或者2.0版本中的WP class)传递给$wp_query object的字符串。关于这个查询字符串结构的信息(对于WP1.5中的wp-blog-header.php-下面的链接已经过时了),请看看[[WordPress:User:DavidHouse/Wordpress_Code_Flow#Request_Parsing|WordPress Code Flow]]。 <dt><tt>$query_vars</tt><dd>一个联合的数组,包含分开的<tt>$query</tt>:一组查询变数及其相关的参数值。 如果查询类别,作者,permalink或者网页,<dt><tt>$queried_object</tt><dd>就可以适用。将信息放置在被请求的类别,作者,文章或者网页上。 <dt><tt>$queried_object_id</tt><dd>Simply拥有以上属性的ID。 <dt><tt>$posts</tt><dd>由数据库中的文章填满。 <dt><tt>$post_count</tt><dd>显示的文章数目。 <dt><tt>$current_post</tt><dd>(在[[WordPress:The Loop|The Loop]]时,可以得到)显示当前显示的文章的索引。 (在[[WordPress:The Loop|The Loop]]时,可以得到) 显示当前显示的文章 <dt><tt>$post</tt><dd> <dt><tt>$is_single</tt>, <tt>$is_page</tt>, <tt>$is_archive</tt>, <tt>$is_preview</tt>, <tt>$is_date</tt>, <tt>$is_year</tt>, <tt>$is_month</tt>, <tt>$is_time</tt>, <tt>$is_author</tt>, <tt>$is_category</tt>, <tt>$is_tag</tt>, <tt>$is_tax</tt>, <tt>$is_search</tt>, <tt>$is_feed</tt>, <tt>$is_comment_feed</tt>, <tt>$is_trackback</tt>, <tt>$is_home</tt>, <tt>$is_404</tt>, <tt>$is_comments_popup</tt>, <tt>$is_admin</tt>, <tt>$is_attachment</tt>, <tt>$is_singular</tt>, <tt>$is_robots</tt>, <tt>$is_posts_page</tt>, <tt>$is_paged</tt><dd>[[WordPress:Glossary#Boolean|Booleans]]指定这是哪种方式的查询。例如,前三个查询分别代表'这是不是个permalink?', '这是不是个网页?', '这是不是什么类型的归档网页?'。 ===方法=== (方法名称之前有一个&符号(&) 指出会[http://www.php.net/manual/en/language.references.return.php 返回方法供参考]。) ; <tt>init()</tt> : 初始化object,将所有的属性设置为空,零或者错误的。 ; <tt>parse_query($query)</tt> :获得定义查询的字符串,解析这个字符串并且配置除了<tt>$posts</tt>, <tt>$post_count</tt>, <tt>$post</tt> and <tt>$current_post</tt>之外的所有属性。 ; <tt>parse_query_vars()</tt> : 重新解析旧的查询字符串。 ; <tt>get($query_var)</tt> : 得到指定的查询变数。 ; <tt>set($query_var, $value)</tt> : 将指定的查询字符串设置为一个特定的值。 ; <tt>&get_posts()</tt> : Fetch and return the requested posts from the database. Also populate <tt>$posts</tt> and <tt>$post_count</tt>. ; <tt>next_post()</tt> : (在 [[WordPress:The Loop|The Loop]]时,使用) 进入<tt>$posts</tt>中的下一篇文章。增加 <tt>$current_post</tt>并且设置 <tt>$post</tt>。 ; <tt>the_post()</tt> : (在 [[WordPress:The Loop|The Loop]]时,使用) 进入下一篇文章,并且设置全局<tt>$post</tt> 变量。 ; <tt>have_posts()</tt> : (在 [[WordPress:The Loop|The Loop]]时,使用或者在Loop之前使用) 决定我们是否还有需要显示的文章。 ; <tt>rewind_posts()</tt> : 重新设置 <tt>$current_post</tt> 和 <tt>$post</tt>。 ; <tt>&query($query)</tt> : 调用 <tt>parse_query()</tt> 和 <tt>get_posts()</tt>。返回<tt>get_posts()</tt>的结果。 ; <tt>get_queried_object()</tt> : 如果<tt>$queried_object</tt> 还没有设置,设置<tt>$queried_object</tt>并且返回<tt>$queried_object</tt>。 ; <tt>get_queried_object_id()</tt> : 如果<tt>$queried_object_id</tt>还没有设置,设置<tt>$queried_object_id</tt>并且返回。 ; <tt>WP_Query($query = <nowiki>''</nowiki>)</tt> (constructor) :如果你提供了查询字符串,用这个字符串调用<tt>query()</tt> 。 ==与 WP_Query相结合== 大多数时候,你能够找到你想要的信息,不需要真正地处理class internals和全局变数。你可以从任何地方调用许多函数,这些函数能够使你得到你需要的信息。 你可能想将<tt>WP_Query</tt>用于两个主要的环节中。首先要找出WordPress当前处理的是哪种类型的请求。<tt>$is_*</tt>属性是用来保存这个信息的:使用[[WordPress:Conditional Tags|条件式标签]]影响这里。这是插件作者更常用的scenario(第二个一般用于主题作者)。 The second is during [[WordPress:The Loop]]. <tt>WP_Query</tt>为Loop内一些常见的函数提供了许多函数。首先,调用<tt>$wp_query->have_posts()</tt>的<tt>have_posts()</tt>,得到了调用,核查是否要显示任何文章。如果要显示文章,就会开始<tt>while</tt> loop,使用<tt>have_posts()</tt>作为条件。只要有文章显示,就会重复<tt>while</tt> loop。在每一次重复的过程中,调用<tt>$wp_query->the_post()</tt>的<tt>the_post()</tt>得到了调用,设置了<tt>$wp_query</tt>内的内部变数和全局<tt>$post</tt>变数([[WordPress:Template Tags|模板标签]]依赖于这些变数)。编写需要loop的主题文件的时候,你就需要使用这些函数。更多的信息,请看看[[WordPress:The Loop|The Loop]] 和[[WordPress:The Loop in Action|运转的Loop]]。
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)