pre_get_posts Action -- action triggered after the query variable is created and before the actual query is run

Posted in:
Update time:2024-11-13

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

parameters

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

usage example

下面是几个使用示例,可以帮我我们快速了解 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' );
        }
    }
} );

We offer WordPress Themes and Plugins Custom Development Services

This site has long undertaken WordPress themes, plugins, WooCommerce-based store mall development business. We have 10 years of experience in WordPress development, if you want to Developing Websites with WordPress, please contact WeChat: iwillhappy1314 or email: amos@wpcio.com for inquiries.

发表回复

Your email address will not be published. 必填项已用 * 标注

*