站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress:The Loop
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==== Loop 例子==== 下面是使用多个loops的两个例子。使用多个loops的关键是<tt>$wp_query</tt>只能被访问一次。要传播这个,通过访问<tt>rewind_posts()</tt> 或者通过创建一个新的查询对象,有可能再次地使用查询。这个在例1中说明了。在例2中,包含用一个变数来储存一个查询的结果。例3说明了使用<tt>update_post_caches();</tt>功能来避免常见的插件问题。最后,‘多个运转的 loops’将许多的观点集中在一起,来一方面说明使用多个loop来提升你的博客主页上的某个类别中的文章。 =====多个 Loops 例子 1===== 为了第二次在同一个询问中loop,访问<tt>rewind_posts()</tt>。这样就会重新设置loop计算器,允许你做另一个loop。 <?php rewind_posts(); ?> <?php while (have_posts()) : the_post(); ?> <!-- Do stuff... --> <?php endwhile; ?> 如果你完成了最初的查询中的文章,你想要使用一个不同的查询,你可以通过访问<tt>query_posts()</tt>再次地使用<tt>$wp_query</tt>对象,然后''looping back''。<tt>query_posts()</tt>会执行一个新的查询,创建一个新的文章列,并且重新设置loop计算器。 // 在一个特别的_cat 类别中得到最后的十篇文章。 <?php query_posts('category_name=special_cat&showposts=10'); ?> <?php while (have_posts()) : the_post(); ?> <!-- Do special_cat stuff... --> <?php endwhile;?> 如果你需要保存原来的查询,你可以创建一个新的查询对象。 <?php $my_query = new WP_Query('category_name=special_cat&showposts=10'); ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <!-- Do special_cat stuff... --> <?php endwhile; ?> 使用了查询对象<tt>my_query</tt>因为你不能使用全局的<tt>have_posts()</tt> 和 <tt>the_post()</tt>因为它们都使用<tt>$wp_query</tt>。 =====多个Loops 例2===== 使用多个Loops的另一个版本,对于不能使用<tt>have_posts()</tt> 和 <tt>the_post()</tt>采取了另一个方针。为了解决这个问题,你应该在一个变数中储存原始查询,当针对另一个Loop时,需要重新地提交查询。这样做,你可以使用所有依赖于全球性的标准功能。 例如: // 独自从这儿离开 <?php $temp_query = $wp_query; ?> <!-- Do stuff... --> <?php query_posts('category_name=special_cat&showposts=10'); ?> <?php while (have_posts()) : the_post(); ?> <!-- Do special_cat stuff... --> <?php endwhile; ?> // 现在返回到我们有规律的规划<?php $wp_query = $temp_query; ?> '''注:''' 在 PHP 5中,对象以操作员为参考,而不是向在php4中那样的复制的。使例2能在PHP5中运行,你需要使用以下的代码: <pre> // 自己离开来到这儿 <?php $temp_query = clone $wp_query; ?> <!-- Do stuff... --> <?php query_posts('category_name=special_cat&showposts=10'); ?> <?php while (have_posts()) : the_post(); ?> <!-- Do special_cat stuff... --> <?php endwhile; ?> // 现在返回到我们正常规定的项目 <?php $wp_query = clone $temp_query; ?> </pre> 然而,第二个例子不能在WordPress 2.1中运行。 =====多个 Loops 例 3 – 插件===== 经发现许多的插件并不能与多个loops合作。在这些情况下,经发现,许多的处理文章的关键词和标签的插件,只对文章第一个包含全部文章的子集的一个loop起作用。如果你发现这是一个问题,你可能想要尝试一下添加了<tt>update_post_caches($posts)</tt>功能的基本的loop在以下的执行情况。这个功能重新设置了文章高速缓存,而且至今没有被证明。只有第一个loop重新得到一个文章的子集,才会执行第二个loop。 仅仅修改: <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <!-- Do stuff... --> <?php endwhile; ?> 变成: <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); update_post_caches($posts); ?> <!-- Do stuff... --> <?php endwhile; ?>
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)