Wordpress主题技巧

使用 WP_Query 自定义 WordPress Loop

使用 WP_Query 自定义 WordPress Loop

本文翻译自 Define Your Own WordPress Loop Using WP_Query,有删节。

我们都知道 WordPress Loop?如果不知道,网上有很多关于 WordPress Loop 的教程。

一个最容易操纵 WordPress Loop 的方法是使用 query_posts 这个函数。

但是使用 query_posts,你可以存在以下风险:

可能会干扰那些用到了 Loop 的插件。
可能使一些 WordPress 条件标签失效。
需要去处理重新设置,重新倒回和偏移等问题。

所以个人觉得最好的方法是使用 WP_Query,并创建自己的 Loop。

使用 WP_Query 自定义 WordPress Loop

第一步是使用 WP_Query 类创建你自己的变量。

在下面的例子中,我们创建一个最新日志列表:


<?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5');
?>

上面代码定义了一个叫做 recentPosts 的变量,它是一 WP_Query 类的一个实例。

然后我使用了 WP_Query 的一个方法开始一个查询,你甚至可以使用和 query_posts 一样的参数。

现在可以开始我们自己的 Loop:


<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
   <!-- do some stuff here -->
<?php endwhile; ?>

我们这里用了 WP_Query 的两个方法,分别是 have_poststhe_post。你可以从这篇文章全局变量和 WordPress 主循环了解更多关于这两个函数。

这样做的好处是你在 Loop 中的时候,你可以使用标准的 post tags。

完整代码

下面是使用自定义的 Loop 先是最新5篇文章的完整代码:


<h3>Recent Articles</h3>
<ul>
<?php
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=5');
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

总结

使用 WP_Query 自定义 WordPress Loop 是不干扰默认 Loop 而去跑自定义查询的一种简单方法。这同样是完全独立去跑多个 Loop 得好方法。

WordPress 官方文档参考:

WP_Query
query_posts
The Loop
Post Template Tags

标签:WordPress 技巧

Wordpress主题技巧

更多有关于 Wordpress主题技巧

V9火车采集器,快速入门!

塔克网整站模板 安装使用指南

WordPress如何备份网站数据库和文件?WordPress整站搬家操作流程。

WordPress网站安全设置教程

国外英文广告联盟网站模板,WordPress主题整站演示地址列表

WordPress主题开发:开启文章缩略图功能

WordPress 自定义头像插件:WP User Avatar

WordPress 后台管理界面UI自定义插件:WP Admin UI Customize

WordPress 自定义文章/页面阅读权限的插件:User Specific Content

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2016 Tadke.com. Powered by Wordpress.