- جۇغلانما
- 613
UID12869
تىزىملاتقان2013-1-18
ئاخىرقى قېتىم2013-7-22
توردا44 سائەت
ئالىي ئەزا

- نادىر
- 0
- جۇغلانما
- 613
- ئاقچا
- 1
|
ئادەتتە WordPress نىڭ ئەسلى ئىزدەش نەتىجىسى يازمىنىڭ ئېلان قىلىنغان ۋاقتىغا ئاساسلىنىپ تىزىلغان بولىدۇ، بۇنداق ئىزدەش نەتىجىسىنىڭ قاراتمىلىقى ھەمدە توغرىلىق نىسبىتى ئانچە يۇقىرى بولمايدۇ. ئەسلىدە ئىزدەش نەتىجىسى يازمىنىڭ ئېلان قىلىنغان ۋاقتى ۋە ياكى ID سىغا ئاساسلىنىپ ئەمەس بەلكى قاراتمىلىقى ھەمدە باغلىنىشلىقى ئاساسىدا تىزىپ بەرسە بۇنىڭ ئۈنۈمى بەكرەك ياخشى بولغان بولاتتى.
ئۇنداقتا بۈگۈن بىز مۇشۇ توغرىىسدا توختىلىپ ئۆتەيلى. بۇنى ئۆزگەرتىش ئۈچۈن نۆۋەتتە ئىشلىتىۋاتقان ئۇسلۇب ھۆججىتى ئىچىدىكى functions.php نى ئېچىپ تۆۋەندىكى كودلارنى قوشىمىز.
- if(is_search()){
- add_filter('posts_orderby_request', 'search_orderby_filter');
- }
- function search_orderby_filter($orderby = ''){
- global $wpdb;
- $keyword = $wpdb->prepare($_REQUEST['s']);
- return "((CASE WHEN {$wpdb->posts}.post_title LIKE '%{$keyword}%' THEN 2 ELSE 0 END) + (CASE WHEN {$wpdb->posts}.post_content LIKE '%{$keyword}%' THEN 1 ELSE 0 END)) DESC,
- {$wpdb->posts}.post_modified DESC, {$wpdb->posts}.ID ASC";
- }
مەزمۇننى كۆچۈرۈۋېلىش ئۇنداق بولسا مەن بۇ كود ھەققىدە قىسقىچە چۈشەنچە بېرىپ ئۆتەي.
يۇقىرىدا كۆرسىتىلگەن كودنىڭ تىزىلىش تەرتىپى ناھايىتى ئاددىي، يەنى ئەگەردە بىز ئىزدىگەن ھالقىلىق سۆز يازمىنىڭ تېمىسىدا كۆرۈلگەن بولسا، ئۇنداقتا ئۇنى ھالقىلىق سۆز دەپ 2 دېگەن قىممەتنى بېرىدۇ. ئەگەردە بىز ئىزدىگەن ھالقىلىق سۆز يازمىنىڭ مەزمۇنى ئىچىدە كۆرۈلگەن بولسا، ئۇنداقتا ئۇنى ھالقىلىق سۆز دەپ 1 دېگەن قىممەتنى بېرىدۇ. ئاندىن بۇ ئىككى قىممەتنى قوشۇپ ئىزدەش نەتىجىسىنى تۆۋەنلەش تەرتىپى بويىچە تىزىپ چىقىدۇ. ئاندىن مۇشۇ ئاساستا يەنە يازمىنىڭ ئېلان قىلىنغان ۋاقتى ۋە ياكى ID سىغا ئاساسلىنىپ ئىزدەش نەتىجىسىنى تىزىپ چىقىدۇ. بۇنداق بولغاندا ئىزدەش نەتىجىسىنىڭ قاراتمىلىقى ھەمدە توغرىلىق نىسبىتى تېخىمۇ يۇقىرى بولىدۇ.
يازما مەنبەسى : ئۇيغۇر ھەقسىز مەنبەلەر تورى |
|