Làm thế nào để tìm kiếm WordPress hoạt động đằng sau hậu trường?


11

Tôi đang sử dụng tìm kiếm WordPress để tìm kiếm một loạt các loại bài đăng tùy chỉnh và cho phép người dùng đi sâu vào từng loại bài đăng riêng lẻ.

Tuy nhiên, tôi thấy rằng WordPress sẽ không trả lại những gì tôi cho là phù hợp nhất trước tiên. Ví dụ: nếu tôi tìm kiếm Microsoft, các trang có thuật ngữ bất thường vẫn được trả về trước các trang thường xuyên sử dụng thuật ngữ này.

Về cơ bản, tôi đang cố gắng tìm một số thông tin về cách WordPress xếp hạng các trang và xác định mức độ liên quan và liệu tôi có thể ảnh hưởng đến điều này mà không phải cài đặt bất kỳ plugin nào không .

Bất kỳ trợ giúp nhiều đánh giá cao.


2
Đó là một câu hỏi rộng lớn cho trang web này - xem phần những gì cần hỏinhững gì không nên hỏi . Tôi đã thực hiện một vài tìm kiếm nhanh trên Google và đã phát hiện ra điều này: Làm cho WordPress 'Tìm kiếm ít hơn (từ '08, tuy nhiên, vì vậy YMMV). Về việc ảnh hưởng đến chức năng mà không có plugin - Nếu bạn bị dị ứng với các plugin của người khác, có lẽ bạn sẽ phải viết một trong số đó. Plugin chỉ đơn giản ảnh hưởng đến cách thức hoạt động của WP và đó là những gì bạn đang cố gắng thực hiện. Đúng?
Pat J

1
Cảm ơn, không phải là tôi sẽ không tránh sử dụng các plugin của người khác, thực tế là tôi muốn tránh 'plugin ngổn ngang', tức là "Ồ, tôi sẽ có một plugin cho cái này và cái kia" và trước khi bạn biết điều đó, bạn đã có 30 người trong số họ đang chạy.
chrisd

Tôi hiểu và thông cảm. Tôi chạy một số plugin, nhưng tôi đã viết một loạt chúng.
Pat J

Câu trả lời:


10

EDIT - Phiên bản hiện tại của WordPress hỗ trợ mức độ liên quan, vì vậy câu trả lời này không còn chính xác nữa.


Không có khái niệm về thứ hạng hoặc mức độ liên quan, đó chỉ là một truy vấn THÍCH đơn giản về tiêu đề và nội dung bài đăng:

($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')

Bạn có thể sử dụng posts_searchbộ lọc để sửa đổi hoặc thay thế hoàn toàn truy vấn tìm kiếm bằng truy vấn của riêng bạn. Từ /wp-includes/query.php:

// Allow plugins to contextually add/remove/modify the search section of the database query
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );

Cũng xem các bộ lọc truy vấn có sẵn trên WP_Querytrang Codex .


4
Thật buồn cười, bạn nên nói rằng Nacin đã cam kết sắp xếp mã theo mức độ liên quan khoảng một giờ trước. Trong thực tế, có lẽ cùng lúc bạn đang viết câu trả lời của bạn. :) core.trac.wordpress.org/changeset/25632
Dave Ross

Đối với các blog lớn / phổ biến, tìm kiếm tất cả nội dung là khá phi thực tế. Cách được đề xuất để tăng tốc độ này mà không cần xóa "HOẶC (...)" khỏi query.php? Tôi nên gửi một câu hỏi mới hoặc bạn có thể mở rộng câu trả lời của bạn?
PJ Brunet

5

Kể từ WordPress 3.7 (tháng 10 năm 2013) , kết quả tìm kiếm được sắp xếp theo các tiêu chí sau (xem vé 7394 ):

  • Câu đầy đủ phù hợp trong tiêu đề bài.
  • Tất cả các thuật ngữ tìm kiếm trong tiêu đề bài.
  • Bất kỳ thuật ngữ tìm kiếm trong tiêu đề bài.
  • Câu đầy đủ phù hợp trong nội dung bài.

Mỗi phần và bất kỳ bài viết còn lại sau đó được sắp xếp theo ngày.

Ngoài ra còn có các bộ lọc mới:

  • wp_search_stopwords, để lọc các từ dừng bỏ qua trong WHERE.
  • posts_search_orderby, để lọc ORDER BYkhi đặt hàng kết quả tìm kiếm.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.