在 WordPress 中按帖子标题搜索代码

ARTRU

根据WordPress默认搜索,它会将搜索查询与标题进行比较 post_title,摘录 post_excerpt 和内容 post_content.

在某些情况下,您只需要基于文章标题的搜索结果,因此您必须编写额外的自定义代码来过滤查询。

  • 这是仅按标题过滤查询的代码。您可以添加到文件 function.php 或插件 代码片段.
function ARTRU_Search_By_Title($columns, $search, $query) {
	return ['post_title'];
}
add_filter('post_search_columns', 'ARTRU_Search_By_Title', 10, 3);
  • 如果您需要更详细的过滤器,例如带重音的越南语,请使用下面的代码。
function ARTRU_Search_By_Title_With_Special_Characters($search, $wp_query) {
    global $wpdb;
    $search_term = $wp_query->query_vars['s'];
    if ($search_term) {
        $search = $wpdb->prepare(
            " AND LOWER({$wpdb->posts}.post_title) LIKE BINARY LOWER(%s) ",
            '%' . $wpdb->esc_like($search_term) . '%'
        );
    }
    return $search;
}
add_filter('posts_search', 'ARTRU_Search_By_Title_With_Special_Characters', 10, 2);
评论

相关文章