以前,WP_Query::parse_query()
方法的s参数搜索post_title
, post_excerpt
, 和post_content
字段,除了使用posts_search
过滤器和手动调整 SQL外,无法控制这一点。
WordPress 6.2 添加了使用search_columns
参数指定在执行查询时搜索哪些字段的功能。
目前,只允许使用默认的 post_title
, post_excerpt
和 post_content
列,但它可能会在 WordPress 的后续版本中得到扩展。
search_columns
参数的默认值为:array( 'post_title', 'post_excerpt', 'post_content' )
。
下面的示例将搜索在其摘要(post_excerp
列)中包含 foo
的帖子,排除post_title
和post_content
列。
<?php $my_query = new WP_Query( array( 's' => 'foo', 'post_type' => 'post', 'search_columns' => array( 'post_excerpt' ), ) );
要了解更多信息,请查看这里。