Cách tìm kiếm WordPress với trường tùy chỉnh với các ví dụ

Bài viết này dành cho bạn nếu bạn đang tìm kiếm câu trả lời cho truy vấn Cách tìm kiếm WordPress bằng trường tùy chỉnh với các ví dụ . Tôi sẽ cung cấp cho bạn một ví dụ 5 để giúp bạn giải quyết vấn đề này.

Cách tìm kiếm WordPress bằng trường tùy chỉnh với các ví dụ - Tìm kiếm WordPress bằng trường tùy chỉnh
function me_search_query( $query ) {
  if ( $query->is_search ) {
    $meta_query_args = array(
      array(
        'key' => 'your_key',
        'value' => $query->query_vars['s'],
        'compare' => 'LIKE',
      ),
    );
    $query->set('meta_query', $meta_query_args);
    add_filter( 'get_meta_sql', 'me_replace_and_with_or' );
  };
}

function me_replace_and_with_or( $sql ) {
    if ( 1 === strpos( $sql['where'], 'AND' ) ) {
        $sql['where'] = substr( $sql['where'], 4 );
        $sql['where'] = ' OR ' . $sql['where'];
    }

    //make sure that this filter will fire only once for the meta query
    remove_filter( 'get_meta_sql', 'me_replace_and_with_or' );
    return $sql;
}

add_filter( 'pre_get_posts', 'me_search_query');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * Generate custom search form
 *
 * @param string $form Form HTML.
 * @return string Modified form HTML.
 */
function wpdocs_my_search_form( $form ) {
    $form = '';
 
    return $form;
}
add_filter( 'get_search_form', 'wpdocs_my_search_form' );
If someone is looking for a solution to this problem is to recommend the plugin:
https://wordpress.org/plugins/acf-better-search/
function cf_search_join( $join ) {
    global $wpdb;

    if ( is_search() ) {    
        $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id ';
    }

    return $join;
}
add_filter('posts_join', 'cf_search_join' );
function cf_search_where( $where ) {
    global $pagenow, $wpdb;

    if ( is_search() ) {
        $where = preg_replace(
            "/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
            "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where );
    }

    return $where;
}
add_filter( 'posts_where', 'cf_search_where' );

function cf_search_distinct( $where ) {
    global $wpdb;

    if ( is_search() ) {
        return "DISTINCT";
    }

    return $where;
}
add_filter( 'posts_distinct', 'cf_search_distinct' );
So, I did another search today and this was worked first time. http://adambalee.com/search-wordpress-by-custom-fields-without-a-plugin/

Các trường hợp khác xoay quanh chủ đề Cách tìm kiếm WordPress với trường tùy chỉnh với các ví dụ được nhiều người quan tâm

Làm cách nào để bạn thực hiện tìm kiếm nâng cao trên WordPress?

Sử dụng Trang tổng quan WordPress .
Điều hướng đến 'Thêm mới' trong Bảng điều khiển plugin
Tìm kiếm 'Tìm kiếm nâng cao'
Nhấp vào 'Cài đặt ngay'
Kích hoạt Plugin trên bảng điều khiển Plugin

Làm cách nào để lọc bài đăng theo trường tùy chỉnh trong WordPress?

Bước 1. Tạo phân loại tùy chỉnh cho loại bài đăng. .
Bước 2. Hiển thị Phân loại trên Trang Lưu trữ. .
Bước 3. Xử lý hành động lọc với phân loại tùy chỉnh. .
Bước 1. Tạo Trường tùy chỉnh để lọc loại bài đăng. .
Bước 2. Hiển thị Danh sách Giá trị của Trường Tùy chỉnh trên Trang Lưu trữ. .
Bước 3. Xử lý hành động lọc theo trường tùy chỉnh

Làm cách nào để tạo tìm kiếm WordPress tùy chỉnh mà không cần plugin?

Những hạn chế của việc tạo tìm kiếm tùy chỉnh mà không cần plugin .
Nó yêu cầu kỹ năng viết mã và kiến ​​thức sâu về WordPress. .
Bạn sẽ có ít tính năng hơn. .
Bạn có thể mất các thay đổi của mình. .
Bước 1. Cài đặt và kích hoạt SearchWP. .
Bước 2. Bắt đầu tùy chỉnh tìm kiếm của bạn. .
Bước 3. Kiểm tra tìm kiếm mới của bạn. .
Bật Tìm kiếm Bài viết theo Thẻ và Danh mục

Làm cách nào để tìm loại bài đăng tùy chỉnh trong WordPress?

Cách dễ nhất để đưa các loại bài đăng tùy chỉnh vào tìm kiếm WordPress là sử dụng plugin SearchWP . SearchWP là plugin tìm kiếm tùy chỉnh tốt nhất cho WordPress, được hơn 30.000 trang web sử dụng. Thật dễ sử dụng và cho phép bạn tìm kiếm nội dung không có trong tìm kiếm mặc định của WordPress.