自定义调用文章在网站建设中很常用,wordpress也很人性化,用新建查询new WP_Query就能实现相关功能。WP_Query怎么用呢?...> WP_Query 这个万能的文章查询类,有人把 WP_Query 所有的参数做了一个总结,然后注释了一下,供有需要的朋友查阅使用。 使用 get_query_var('page'); 如果查询在设置为首页的页面模版中工作,查询参数 'page' 拥有文章分页或内容中使用 在返回文章的开头忽略/排除置顶文章,但是置顶文章还是会在自然查询中列出。...) /** * 与缓存相关的参数 */ 'no_found_rows' => false, //(布尔值) 默认为假,为了分页,WordPress 在大多数查询中使用 SQL_CALC_FOUND_ROWS
wordpress默认会根据网址调用数据,不能满足我们所有建站要求,而WP_Query可以用于查询任何你想要的内容,相当于自定义数据调用。 wordpress的主循环 <?...php // WP_Query 所使用的参数 $args = array( 'posts_per_page' => 3 ); // 调用 WP_Query 新建文章查询....//注意:使用 get_query_var('page'); 如果查询在设置为首页的页面模版中工作,查询参数 'page' 拥有文章分页或内容中使用 在返回文章的开头忽略/排除置顶文章,但是置顶文章还是会在自然查询中列出。...) /** * 与缓存相关的参数 */ 'no_found_rows' => false, //(布尔值) 默认为假,为了分页,WordPress 在大多数查询中使用 SQL_CALC_FOUND_ROWS
而说到复杂点的用法,你甚至可以利用query_posts来查询某一分类目录下某个作者发表的、带有某个标签的特定数量文章等。下面介绍的是一些更实用的用法。...在主循环外的循环上使用query_posts会导致主循环运行偏差,并可能在页面上显示出你不希望看到的内 容。 最恰当的方法是使用query查询类。 <?...不同调用方法 传统的文章调用方法是以查询字符串形式传递query_posts参数(如variable1=value1&variable2=value2&…),不过后来有了新方法——用数组来设置查询参数。...> 当然,使用哪种方法完全由个人习惯决定,不过我认为用数组更为方便,原因如下: 便于阅读,可以利用if语句更轻松地给数组添加条件,以动态生成查询一些查询参数(某些使用频率较低的参数,如分类参数和标签参数...置顶文章 WordPress在 2.7版本中引入了文章置顶功能。 这使用户选定的文章能够不受时间的排序标准,总是显示在文章列表的最上方。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第11讲关于搜索和评论的参数: 搜索参数 搜索参数可以根据关键字搜索获取文章。 s (string) – 搜索关键词。...$query = new WP_Query( array( 's' => 'keyword' ) ); 在搜索关键词前面加上连字符将排除与关键词匹配的文章,例如 "pillow -sofa" 将返回包含
问题1 – 模糊搜索: 大胆尝试: wordpress 原生自带有一个 wp_query 函数,它支持的参数非常完善灵活,实现整个网站与数据库的交互。...在官方手册中也有介绍到:wp_query,支持多种 sql 语句的 比较符号: ? 看!他说可以支持 like 或者 regexp 这种比较符号。...转换思路: 其实在数据库使用 like 的查询效率是非常低,所以我们可以把这一部分的逻辑由 php 自己实现。...the_post(); global $post; $post_title = get_the_title(); // mb_stripos 不区分大小 判断字符串中是否存在另一个字符串...action=search&keyword=cdn 上面我们用了 wordpress 的钩子函数,所以我们调用的时候用参数 action ,后面拼接相对应的 function 效果展示: ?
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...然后复杂的情况可以使用 date_query 数组参数,这个参数从 3.7 版本开始的, date_query 数组里面的字段参数: year (int) – 四位数的年份(比如:2021)。...参数被设置为 true,该日期也不会包含在查询中。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第三讲关于查询特定文章类型的文章,文章类型的参数只有 post_type 这一个,它可以是字符串或者数组,默认值是 'post',如果设置了分类参数 'tax_query' 的话,默认值是 'any':...所以如果你没有在查询中显式指定 post_status 为 'inherit' 或者 'any' 那么没有任何附件返回。
WP_Query是wordpress提供的一个类,它支持的参数和方法非常丰富,通过各种给组合查询参数,几乎所有的文章查询都可以通过这个类实现。...使用的方法主要有两种: 可以通过在WordPress编辑器中插入短码的形式。...比如 用 jQuery 和 Bootstrap 在 WordPress 中添加进度条 这里介绍的用法 也可以通过在主题文件中使用函数do_shortcode() 。...比如这篇文章中介绍过的:在WordPress中添加简书风格的连载目录和文章导航 Display Post支持的参数特别全面。...还可以综合使用目录和tag两种分类发和其他的操作符来进行复杂的查询,详见这里 自定义显示形式 这也属于高级用法之一了,默认是使用Html中的无序列表ul,你可以通过参数 wrapper="ol" 来改成有序列表
这可能会导致不一致,特别是如果我们在代码中使用查询相关的过滤器,因为你在页面中不期望的帖子可能会被该函数返回。 使用WP_Query类 在我看来,这是从数据库中检索帖子的最佳方式。...WordPress允许我们将-1表示为该参数的合理值,在这种情况下,系统将尝试获取满足定义条件的所有帖子。 这不是一个好的做法,即使我们确信我们只会得到一些结果作为回应。...有时我们要从查询中排除某些帖子。WordPress提供了一个非常直接的方法:使用post__not_in参数。...基本上,我从数据库引擎中脱掉了一些工作,而是将其转移到PHP引擎,功能和在数据中处理的相同但在内存中,因此更快。 如何做的? 首选,我在查询中删除了post__not_in参数。...虽然这种灵活性是一个强大的功能,但应谨慎使用,因为参数化可能会转化为复杂的表连接和昂贵的数据库操作。 在下一节中,我们将概述一种在不影响性能的情况下仍然实现类似功能的优雅方式。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第一讲,把 WP_Query 最常用的分类,标签和分类模的所有相关的参数讲解一下,例子也是来自官方文档,学完之后,你可以在 WordPress 进行非常复杂的多重筛选。...比如:获取在 quotes 分类中或者同时有 quote 文章格式和在 wisdom 分类中的文章: $query = new WP_Query(array( 'post_type' => 'post
首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。...get_sql_for_clause调用clean_query来验证用户提供的字符串。但是,如果分类参数为空且字段参数的值为字符串“term_taxonomy_id” ,则该方法无法验证术语参数。...稍后在 SQL 语句中使用terms参数的值。...图 5 - wordpress/wp-includes/class-wp-tax-query.php 请注意,get_sql()返回的sql变量附加到 SQL SELECT 语句并使用从该方法返回的字符串进行组装...后来在get_posts方法中,这个查询是通过$wpdb->get_col()方法执行的,这里出现了SQL注入条件。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第四讲关于查询特定状态的文章,文章状态只有 post_status 这一个参数,可以是字符串或者数组。...默认值是 'publish',就是获取公开状态的文章,如果用户在已登录的情况下,'private' 状态的文章也会被获取到,另外默认情况下公开属性的自定义文章状态的文章也会获取到。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...meta_value – 按照自定义字段排序,请先确保在查询中已经设置了 meta_key,额外要注意,是按字母顺序排列的,这对于字符串来说没有问题,但对于数字可以结果不是你预期的,(例如结果是 1、3...post__in – 按照 post__in 参数中给出的文章 ID 顺序进行排序,注意使用 post__in,order 参数的值无效。
但是今天感觉找到了个不错的办法:在首页隐藏部分文章。目前的逻辑是:隐藏所有“每周歌词”分类的文章,但是显示最新一篇和标“推荐”的文章。为了实现这个操作,我做了多种不同的尝试。...尝试2:pre_get_posts 经过一番查找,找到了一个可能有用的Hook点pre_get_posts。...这个操作发生在构造查询对象后、解析查询对象(WP_Query)前,所以可以对查询对象进行修改。而且由于这是一个Hook,因此不会对主题代码有任何的侵入,相对可控。...如果一定要用这个方法实现的话,就需要先进行一次查询找出所有非推荐、不是最后一篇的文章id,然后加入post__not_in参数来去除这些文章。...不愧是我,这都能水一篇 Reference WP_Query文档:https://developer.wordpress.org/reference/classes/wp_query/
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第13讲关于 WP_Query 类的所有属性: query保存由 WP 类传递给 wp_query 对象的查询字符串。...$found_posts 匹配当前查询参数而找到的文章总数。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...); 使用 'meta_value' 参数的时候,值 99 将被视为大于 100,因为数据默认为“字符串”,而不是“数字”,如果是要对数字进行比较,请使用 'meta_value_num' 参数。...( $args ); 特别注意下,使用 meta_query 的时候,需要传递嵌套数组,即使只有一个自定义字段查询的时候,也是一样。
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...第二讲关于查询特定作者的文章,首先文章作者相关的参数有四个: author (int) – 使用作者 ID。...使用作者 ID 获取某个作者的文章: $query = new WP_Query( array( 'author' => 123 ) ); 使用作者 'user_nicename' 获取某个作者的文章:
WP_Query 实现数据库查询缓存 WordPress 6.1 改进了 WP_Query 类中数据库查询的执行方式,实现 SQL 查询缓存,这意味着如果多次运行同一条 SQL 查询,查询结果将从缓存中加载...对于未使用内存缓存的站点来说,同个页面中相同的 WP_Query 也也不会重复执行,所以站点性能也会得到一定提升,但是不会那么显著。...WP_Query 实现数据库查询缓存是有一套自己的实现机制,所以对于插件和主题开发者来说,如果要对文章进行操作的话,最好使用 WordPress 提供的文章操作函数。...如何禁用缓存 值得注意的是,在默认情况下,WP_Query 的所有数据库查询都将被缓存,如果想不缓存,只需将 cache_results 参数设置为 false 即可: $query = new WP_Query...初始化菜单中的所有链接对象 WordPress 6.1 还新增了函数 update_menu_item_cache,它支持一个 post 的对象数组参数,然后就会初始化菜单中引用到的文章或者分类的数据缓存
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...=> 'readable', ); $query = new WP_Query( $args ); 缓存参数 用于设置停用将获取到的文章存到缓存中,对应的参数有三个: cache_results (boolean...$query = new WP_Query( $args ); 一般来说,这些缓存相关的参数不会特别用到,添加到缓存是才是正确的做法,但是在一些特定的情况下可能很有用,比如需要获取一组文章的标题和链接
query_posts 存在的问题 使用 query_posts 直接修改 WordPress 默认的主循环很方便,只要把对应的参数传递给函数即可,主循环的查询即可按照新的参数去查询,但是这样会造成以下的问题...使用 WP_Query 自定义查询 所以最好的方法是使用 WP_Query 来创建自定义 WordPress 查询,这样创建的查询和 WordPress 主循环隔离开,并不会影响主循环的行为。...> 上面代码定义了一个叫做 recent_query 的变量,它是类 WP_Query 的一个实例,然后我使用了 WP_Query 的一个方法 query 创建一个新的查询,它的参数和 query_posts...这样做的好处是在循环中,我们可以使用 WordPress 标准的文章相关的模板函数,比如下面是使用自定义的 Loop 先是最新5篇文章的完整代码: 最新日志 简单总结 使用 WP_Query 创建自定义 WordPress 查询是不会干扰默认的 WordPress 主循环,使用它我们完全可以在一个页面同时运行两个或者以上完全独立的 WordPress