pre_get_posts Action —— 在创建查询变量之后、运行实际查询之前触发的操作

发布于:
更新时间:2024-11-13

pre_get_posts Action主要用来修改主查询,经常在需要修改主文章查询时使用,可以让我们不用创建自定义查询来得到我们需要的文章内容。

参数

该Action只有一个参数,就是通过引用传递的$wp_query 对象。

使用示例

下面是几个使用示例,可以帮我我们快速了解 pre_get_posts Action 的使用方法。

在首页文章中排除ID位7、11 的文章。

add_action( 'pre_get_posts', function ($query) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post__not_in', array( 7, 11 ) );
    }
} );

在搜索结果中排除页面、只搜索文章内容。


add_action( 'pre_get_posts', function ($query) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( $query->is_search ) {
            $query->set( 'post_type', 'post' );
        }
    }
} );

我们提供 WordPress主题和插件定制开发服务

本站长期承接 WordPress主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 10 年WordPress开发经验,如果你想 用WordPress开发网站, 请联系微信: iwillhappy1314,或邮箱: amos@wpcio.com 咨询。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

*