以前,WP_Query::parse_query()方法的s参数搜索post_titlepost_excerpt, 和post_content字段,除了使用posts_search过滤器和手动调整 SQL外,无法控制这一点。

WordPress 6.2 添加了使用search_columns参数指定在执行查询时搜索哪些字段的功能。

目前,只允许使用默认的 post_titlepost_excerpt 和 post_content 列,但它可能会在 WordPress 的后续版本中得到扩展。

search_columns 参数的默认值为:array( 'post_title', 'post_excerpt', 'post_content' )

下面的示例将搜索在其摘要(post_excerp列)中包含 foo 的帖子,排除post_titlepost_content列。

<?php
$my_query = new WP_Query(
    array(
        's'              => 'foo',
        'post_type'      => 'post',
        'search_columns' => array( 'post_excerpt' ),
    )
);

要了解更多信息,请查看这里

发表回复

后才能评论