📅  最后修改于: 2023-12-03 14:53:45.588000             🧑  作者: Mango
在 WordPress 中默认的搜索功能会搜索文章的标题和内容,但有时候我们只需要搜索文章的标题。本文将介绍如何将 WordPress 搜索限制为标题。
我们可以通过使用 pre_get_posts
钩子来改变搜索的行为。在 functions.php
文件中添加以下代码即可:
function search_by_title_only( $query ) {
if ( $query->is_search ) {
$query->set( 'posts_per_page', '-1' );
$query->set( 'post_type', 'any' );
$query->set( 'post_status', 'publish' );
$query->set( 'fields', 'ids' );
$query->set( 'search_fields', array(
'post_title',
) );
}
return $query;
}
add_action( 'pre_get_posts', 'search_by_title_only' );
上述代码中,我们使用 set
方法来设置搜索参数,其中:
posts_per_page
: 每页返回的文章数,设置为 -1
表示返回所有文章。post_type
: 要搜索的文章类型,设置为 any
表示搜索所有文章类型。post_status
: 要搜索的文章状态,设置为 publish
表示搜索已发布的文章。fields
: 返回的字段,设置为 ids
表示只返回文章的 ID。search_fields
: 要搜索的字段,设置为 post_title
表示只搜索文章标题。你可以根据自己的需要修改这些参数来自定义搜索功能。
使用 pre_get_posts
钩子可以非常方便地改变搜索的行为,让搜索更符合实际需求。希望本文对你有所帮助。