前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用 WP_Query 而不是 query_posts 自定义 WordPress 查询

使用 WP_Query 而不是 query_posts 自定义 WordPress 查询

作者头像
Denis
发布于 2023-04-13 03:17:00
发布于 2023-04-13 03:17:00
37100
代码可运行
举报
文章被收录于专栏:WordPress果酱WordPress果酱
运行总次数:0
代码可运行

前面我们介绍了 WordPress 的主循环和全局变量,那么如果需要自定义 WordPress 查询进行一些事情,可以有两种方法,最容易的方法是使用 query_posts 函数,另外一种方法就是自定义 WP_Query。

query_posts 存在的问题

使用 query_posts 直接修改 WordPress 默认的主循环很方便,只要把对应的参数传递给函数即可,主循环的查询即可按照新的参数去查询,但是这样会造成以下的问题:

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

使用 WP_Query 自定义查询

所以最好的方法是使用 WP_Query 来创建自定义 WordPress 查询,这样创建的查询和 WordPress 主循环隔离开,并不会影响主循环的行为。那么如何是用 WP_Query 呢?

使用 WP_Query 第一步是创建一个实例对象,比如我们要创建一个最新文章列表,就可以使用下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
	$recent_query = new WP_Query();
	$recent_query->query('posts_per_page=5');
?>

上面代码定义了一个叫做 recent_query 的变量,它是类 WP_Query 的一个实例,然后我使用了 WP_Query 的一个方法 query 创建一个新的查询,它的参数和 query_posts 函数的参数一样

现在就可以开始我们自己的循环了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php while ($recent_query->have_posts()) : $recent_query->the_post(); ?>
	 <!-- 开始干活 -->
<?php endwhile; ?>

上面我们用了 WP_Query 的两个方法,分别是 have_poststhe_post,这两个方法的具体意思,可以参考这篇文章全局变量和 WordPress 主循环里面的介绍。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h3>最新日志</h3>

<ul>

<?php
	$recent_query = new WP_Query();
	$recent_query->query('posts_per_page=5');
?>

<?php while ($recent_query->have_posts()) : $recent_query->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 循环。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WordPress 代码实现相关文章(列表模式)功能
之前分享的相关文章代码化功能是仿无觅的图文模式,现在分享的一个是文章列表陈列模式。代码最初来自 Willin Kan,经过zwwooooo 的修改优化。不得不说,这个代码所实现的相关文章的相关度非常高
Jeff
2018/01/19
1K0
wordpress调用文章摘要,若无摘要则自动截取文章内容字数做为摘要
以下是调用指定分类文章列表的一个方法,作者如果有填写文章摘要则直接调用摘要;如果文章摘要忘记写了则自动截取文章内容字数做为摘要。这个方法也适用于调用description标签
ytkah
2019/09/25
1.3K0
wordpress调用指定类型post_type的文章
  wordpress很强大,可以添加多种post_type文章类型,假如我们要调用product产品模型的文章要如何操作呢?随ytkah一起来看看吧。我们用'post_type' => 'product'进行指定,代码如下
ytkah
2019/11/13
6890
WordPress 技巧:调用置顶文章
有些时候我们需要调用 WordPress 置顶文章并单独显示出来,可以通过 WP_Query 来实现,代码如下:
Denis
2023/04/15
4900
WordPress调用指定分类下的文章
“cat=15”表示ID为15的分类 “posts_per_page=10”表示显示数量为该分类下最新10篇文章
青梅煮码
2023/01/16
5690
WordPress文章归档页面分组和分页
WordPress 归档页面是一个网站的历史内容存档,它允许用户浏览网站的过去内容。它的存在有以下几个意义:
楚客追梦
2024/08/07
2550
wordpress插件Pods模板及字段调用方式
wordpress优秀插件 Pods ,它的功能可以参考这篇介绍文章《Pods 创建管理自定义内容类型和字段》,使用方法超级简单,傻瓜式的添加和选择即可,本文主要说一下Pods页面模板以及字段调用的方法。
子润先生
2021/06/24
1.6K0
wordpress调用置顶文章sticky_posts的三种方法
  有时我们在开发wordpress时需要调用置顶文章sticky_posts,怎么调用呢?几种写法,有用到query_post的,有用到WP_Query,也有用到is_sticky(),下面随ytkah一起来看看吧
ytkah
2019/09/25
9820
WordPress 在代码里调用指定分类下随机文章列表 (图文列表)
在调用位置插入即可 有图列表: <!-- 相关推荐 --> <div id="Recommend"> <h2 id="Recommend_title"> 相关推荐:
AlexTao
2021/02/24
8840
WordPress纯代码高仿 无觅相关文章 图文模式功能
无觅的相关文章插件确实是一个不错的插件,Jeff的阳台到现在还在使用它(貌似产生了依赖性)。但到了devework.com,为了体现轻度、代码化的主题制作理念。所以在网络上找了些资料,结合自己不怎么样的技术,折腾出了个高仿无觅相关文章图文模式功能。具体效果见文章下方的“亲,意犹未尽?来看更多:”部分,是不是感觉还挺像呢?下面就分享一下折腾的成果。 首先说明,本方法实现的相关文章原理是通过获取该文章分类,找到同一分类的文章,这些文章即为“相关文章”。而图片的话,采用的是timthumb 截图(好处是节约空间,
Jeff
2018/01/19
7160
WordPress纯代码高仿 无觅相关文章 图文模式功能
WordPress自定义查询WP_Query使用方法大全
  自定义调用文章在网站建设中很常用,wordpress也很人性化,用新建查询new WP_Query就能实现相关功能。WP_Query怎么用呢?随ytkah一起来看看吧
ytkah
2019/12/25
4.4K0
WordPress纯代码仿无觅相关文章图文模式功能(增强版)
之前在《WordPress纯代码高仿 无觅相关文章 图文模式功能》一文中分享的代码有两个缺点:一是文章相关度不够(该代码使用分类进行关联相关文章);二是可能会出现当前文章。于是,Jeff在大体看懂源代码的情况下结合着两段源代码进行修改,成功解决以上的两个问题。下面分享最新版本的代码。 本方法实现的相关文章原理是通过获取该文章分类,找到同一分类的文章,这些文章即为“相关文章”。而图片的话,采用的是timthumb 截图(好处是节约空间,提高加载速度),默认的话是截取文章的第一张图片,文章没有图片的话就使用随机
Jeff
2018/01/19
4950
wordpress调用函数大全
WordPress Header头部 PHP代码 (注: 也就是位于<head>和</head>之间的PHP代码)
纯情
2023/04/26
5790
10个WordPress的query_posts语句使用技巧
Query_posts语句是WordPress最实用的语句之一。 正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容。 Query_posts的魅力在于,它可以根据你的要求,通过各种各样的方式灵活地检索并过滤日志或页面。你可以用query_posts进行简单的文章抓取,可以只抓取一篇,也可以抓取上百篇。 而说到复杂点的用法,你甚至可以利用query_posts来查询某一分类目录下某个作者发表的、带有某个标签的特定数量文章等。下面介绍的是一些更实用的用法。
主机教程网2bcd.com
2022/11/28
7880
10个WordPress的query_posts语句使用技巧
wordpress调用指定分类除外的置顶文章
我们有时需要根据实际需要进行一些设置,比如wordpress调用指定分类除外的置顶文章,如何实现呢?随ytkah一起来看看吧,用如下代码插入到需要调取的位置
ytkah
2019/10/29
5280
wordpress调用指定分类文章如何实现
  wordpress是很强大的cms系统,你可以通过相关函数就能实现相关的功能。很多网友会问wordpress怎么调用指定分类文章的呢?其实很简单,随ythah一起来看看吧,几行代码就解决了,代码如下
ytkah
2019/08/03
1.5K0
wordpress常用函数-随机文章获取和相关文章获取
1、wordpress随机获取文章10篇文章,轻松实现wordpress文章的随机调用;
wordpress建站吧
2019/12/10
9030
【说站】WordPress调用指定分类的文章标题、链接、别名
WordPress在开发主题的时候经常会遇到要调用指定分类的标题、链接、别名之类的。wordpress和模板机制不是标签机制,只有相应的函数,本文就分享下WordPress调用指定分类的标题、链接、别名、文章的使用方法。 category是分类的意思,slug代表别名。
很酷的站长
2022/11/24
9310
【说站】WordPress调用指定分类的文章标题、链接、别名
wordpress调用指定tag的文章
  前面的文章wordpress调用指定分类文章如何实现有网友回复要如何调用指定tag的文章,原理是类似的,有两种方法,随ytkah一起来看看
ytkah
2019/09/25
7100
wordpress调用自定义post_type文章
  前面我们讲了wordpress添加post_type自定义文章类型,我们现在来讲一下如何把自定义文章调用出来,我们以product为例,虽然我们自定义好了 Post Type 同时也编写了一些内容,但是在首页、列表里面并没有显示出来。自定义的 Post Type 的内容不会自动混入主循环里面。那如何让自定义 Post Type 的内容显示出来?需要使用 pre_get_posts 这个 action 来做一些处理:
ytkah
2019/11/26
8490
相关推荐
WordPress 代码实现相关文章(列表模式)功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验