Giới hạn search theo title của WordPress

Nếu bạn muốn wordpress chỉ search từ khóa theo title thì đơn giản bạn chỉ việc mở file functions.php ra và thêm hàm bên dưới vào.

function __search_by_title_only( $search, &$wp_query )
{
    global $wpdb;
    if ( empty( $search ) )
        return $search; // skip processing - no search term in query
    $q = $wp_query->query_vars;
    $n = ! empty( $q['exact'] ) ? '' : '%';
    $search =
    $searchand = '';
    foreach ( (array) $q['search_terms'] as $term ) {
        $term = esc_sql( like_escape( $term ) );
        $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        $searchand = ' AND ';
    }
    if ( ! empty( $search ) ) {
        $search = " AND ({$search}) ";
        if ( ! is_user_logged_in() )
            $search .= " AND ($wpdb->posts.post_password = '') ";
    }
    return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );
Did you like this? Share it:

Tham khảo:

  • http://www.doctruyen.hetsay.com doc truyen

    Tức là cái này dùng cho tính năng search của wordpress đúng ko bác?

    • http://thegioimanguon.com xman

      đúng rồi đó bạn, wordpress thường search tương đối nên đôi khi kô chính xác hoặc chỉ muốn search theo title thì nên dùng cách này

  • http://dienlanhsodo.com Điện Lạnh Số Đỏ

    Sao ko dùng chức năng search của google nhỉ, mình thấy search của WP đưa ra kết quả rất bậy bạ nhất là đối với ngôn ngữ việt.

    hầu hết hệ thông Website của mình đều sử dụng Google thay thế cho chức năng có sẵn của WP.

    • http://thegioimanguon.com xman

      đây chỉ là 1 option nếu bạn muốn thôi :)