WordPress函数is_main_query是主查询吗?

WordPress函数is_main_query是主查询吗?is_main_query()函数是一个开发者常用的函数,它能帮助wordpress主题或者插件开发者确定当前查询是主查询还是辅助查询,以便于开发者使用不同逻辑。使用这个函数可以帮助我们实现WordPress提速优化,达到0sql的效果。

函数介绍

is_main_query()

用以确定查询是否为主查询。

返回值

是主查询返回true,不是返回false。

官方描述

is_main_query()函数是一个条件函数,可用于计算当前查询(例如循环中的查询)是否是“主”查询(与辅助查询相反)。这个函数在钩子中最常用,用于区分WordPress的主查询(用于页面、POST或归档)和自定义/辅助查询。is_main_query()可以与前端查询(主题模板、插件等)以及管理查询一起使用。如果当前查询是主查询,则返回true;如果不是,则返回false。

此WordPress函数不接受任何参数。相反,它会自动将$wp_query对象(即“当前查询”)与$wp_the_query对象(“主查询”)进行比较,该函数是WP_Query类下is_main_query()方法的别名。在传递WP_Query对象(如‘preget_post’)的Filter或action挂钩回调中,调用此函数是循环的。相反,直接调用传递对象的方法。例如,如果您的过滤器回调将传递的WP_Query对象分配给$query,您将调用如下方法:$query->is_main_query()。

add_action( ‘pre_get_posts’, ‘foo_modify_query_exclude_category’ );

function foo_modify_query_exclude_category( $query ) {

if ( ! is_admin() && $query->is_main_query() && ! $query->get( ‘cat’ ) )

$query->set( ‘cat’, ‘-5’ );

}

使用WP_Query->is_main_query()代替is_main_query()(无效)的示例

/**

* If the global query is for a category, exclude category 5.

*

* @param WP_Query $query Global WP_Query instance.

*/

function wpdocs_modify_query_exclude_category( $query ) {

if ( ! is_admin() && $query->is_main_query() && ! $query->get( ‘cat’ ) )

$query->set( ‘cat’, ‘-5’ );

}

add_action( ‘pre_get_posts’, ‘wpdocs_modify_query_exclude_category’ );

常见问题
Wordpress模板插件上传安装提示错误怎么办?
本站在打包插件或者模板的时候,一般会将官方文档、官方申明、已经其他文件一起打包,因此,大部分插件模板在安装前需要解压缩。
购买后无法下载或者提取码错误怎么办?
请联系客服QQ:125252828 或者微信:dobunkan,由于骚扰信息过多,加好友时请说明原由!
小白建站啥都不会怎么办?
请与客服联系,沟通具体的技术支持。由于搭建环境、调试程序需要花费一些时间,可能会收取一些费用。
怎样催促站长更新?
直接微信或者QQ联系本站客服,提供最新版本号以及软件名称,客服会在第一时间更新,如果超过2-3年未更新的请先联系站长后再确认是否需要下载。
为什么打开链接看不到最新版本?
因为网盘默认是按名称排序,最新版本不一定会排在第一个,请打开链接后点击右上角的“修改日期”,这时候更新列表就会按更新日期排序了。
原文链接:https://www.dobunkan.com/tools/27165,转载请注明出处。
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

学课技术网欢迎您的加入!