用WP_Query自定义WordPress 主循环

简介: 我们知道操作 WordPress 主循环(WordPress Loop)最容易的方法是使用 query_posts 函数。但是使用 query_posts 直接修改 WordPress 默认的主循环,会有以下的问题:    会干扰那些用到了 WordPress 循环的插件。

我们知道操作 WordPress 主循环(WordPress Loop)最容易的方法是使用 query_posts 函数。

但是使用 query_posts 直接修改 WordPress 默认的主循环,会有以下的问题:

    会干扰那些用到了 WordPress 循环的插件。
    可能使一些 WordPress 条件判断函数失效。
    需要去处理重新设置,回滚和偏移等问题。

 

使用 WP_Query 自定义 WordPress Loop

所以最好是使用 WP_Query,并创建自己的 WordPress 循环。

使用 WP_Query 第一步是创建你自己的变量,比如我们要创建一个最新日志列表,就可以使用下面的代码:

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

上面代码定义了一个叫做 recentPosts 的变量,它是一 WP_Query 类的一个实例。然后我使用了 WP_Query 的一个方法开始一个查询,我们可以使用和 query_posts 函数一样的参数。现在就可以开始我们自己的循环了:

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

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

这样做的好处是在循环中,我们可以使用标准的 post 模板函数。比如下面是使用自定义的 Loop 先是最新5篇文章的完整代码:

<h 3>最新日志</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; ?>
<?php wp_reset_query(); ?>
</ul>

简单总结
使用 WP_Query 自定义 WordPress 循环是不干扰默认的 WordPress 主循环,而自定义查询的一种最简单最好方法。所以我们还能一个页面同时运行完全独 WordPress 循环。

原文:我爱水煮鱼http://blog.wpjam.com/article/define-wordpress-loop-using-wp_query/

目录
相关文章
|
5月前
自定义WordPress首页显示文章数
自定义WordPress首页显示文章数
25 1
|
6月前
|
前端开发
Wordpress自定义鼠标样式插件
使用此插件可一键自定义Wordpress前端鼠标指针样式。利用该插件,站长可以快速实现替换多种鼠标指针样式于网站前端。,该插件允许用户一键自定义网站前端的鼠标指针样式,提供多种图案选择。插件资源来源于网络并已开源,无商业性质。包含插件截图和使用教程:用户可从蓝奏云或GitHub下载插件zip文件,然后在WordPress中安装。
122 6
WordPress 的最佳设计和自定义页面布局生成器是什么吗?
WordPress 有很多设计和自定义页面布局生成器可供选择,它们都有不同的特点和优缺点,最佳的选择取决于您的需求和偏好。以下是一些常用和受欢迎的 WordPress 页面布局生成器:
|
搜索推荐 前端开发 PHP
wordpress建站如何自定义404页面
当在 WordPress 上创建自定义 404 页面比以往任何时候都更简单时,不要用错误页面来烦扰您的用户。这里有一些不同的方法。
|
安全 数据库
如何修复 WordPress 定制开发中登录重定向循环?
WordPress 登录重定向循环意味着什么。WordPress 无法对您进行身份验证并授予对 WordPress 仪表板的访问权限,身份验证过程中遇到的问题使 WordPress 返回登录页面。那么如何修复 WordPress 定制开发中登录重定向循环?下面北京六翼开源的开发工程师针对这一问题的解答。
如何修复 WordPress 定制开发中登录重定向循环?
wordpress自定义主题
wordpress自定义主题 找到 themes文件夹,位置app\public\wp-content\themes 新建一个目录存放主题文件,目录结构如下: 这里我们的目录名是:fictional-university-theme 目录结构就是这样的: fictional-university-theme index.php style.css screenshot.png (放入一张自己的图,命名为screenshot.png) 在style.css中定义主题相关信息,如下
130 0
wordpress自定义主题
|
关系型数据库 MySQL Linux
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
760 0
CentOS7.2基于LAMP搭建WordPress,并自定义Logo和名称
|
新零售 数据可视化
一文说透WordPress的自定义文章类型
本文可能是关于WordPress自定义文章类型讲的最详细的文章了
2490 0
|
前端开发 关系型数据库 PHP