WordPress6.7.1 搜索限制只搜索标题
admin
2025-09-12
169
0条评论
WordPress6.7.1 搜索限制只搜索标题方法:
找到主题目录:/wp-content/themes/主题下的functions.php新增下面代码:
//搜索优化
function __search_by_title_only( $search, $wp_query ) {
global $wpdb;
if ( empty( $search ) ) {
return $search; // 如果没有搜索词,则直接返回
}
// 从 $wp_query->query_vars 中获取搜索词和其他查询参数
$query_vars = $wp_query->query_vars;
$search_terms = (array) $query_vars['search_terms']; // 确保搜索词是数组
$exact = ! empty( $query_vars['exact'] ); // 检查是否精确匹配
$n = $exact ? '' : '%'; // 根据是否精确匹配设置通配符
// 构建搜索查询字符串
$search_parts = [];
foreach ( $search_terms as $term ) {
$term = esc_sql( like_escape( $term ) );
$search_parts[] = "({$wpdb->posts}.post_title LIKE '{$n}{$term}{$n}')";
}
// 如果搜索词不为空,则组装完整的搜索条件
if ( ! empty( $search_parts ) ) {
$search = " AND (" . implode(' AND ', $search_parts) . ")";
// 如果用户未登录,则添加密码保护检查(可选)
if ( ! is_user_logged_in() ) {
$search .= " AND ({$wpdb->posts}.post_password = '') ";
}
}
return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

