0 0 0

WordPress6.7.1 搜索限制只搜索标题

admin
2024-12-24 15:19:43 23

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 );

上传即可

最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!