📜  将 wordpress 搜索限制为标题 - PHP (1)

📅  最后修改于: 2023-12-03 14:53:45.588000             🧑  作者: Mango

将 WordPress 搜索限制为标题 - PHP

在 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 钩子可以非常方便地改变搜索的行为,让搜索更符合实际需求。希望本文对你有所帮助。