让wordpress自带的搜索仅搜素标题内容

2013.03.21 分享 12182 人浏览 11 条留言

由于同学的毕业论文需要,让wp的搜索功能仅搜索标题,所以我就在网上找了很久的关于search的函数用法

额,各种搜索没结果呀,wp官方的中文英文函数大全都没有提到(或者我眼神不好),在快失去信心的时候,终于发现了

在这里分享下吧

找到wp-includes/query.php 将

  1. $search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}'))";  

替换成

  1. $search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}'))";  

再将

  1. $search .= " OR ($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')";  

替换成

  1. $search .= " OR ($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";  

貌似用替换了第一个文件就实现了... 测试版本 wordpress 3.5.1

一不小心把链接写成了http://huilang.me/search-titl/囧...少了个e 算了 无所谓了

 

发现了一种更实用的方法,即提高提高 WordPress 搜索的相关性,让wp自带的搜索排序根据标题然后到内容排列,而不是根据时间的先后,这样就可以更好的搜索出我们想要的结果(虽然我想要的就是仅搜索标题而已,但是又这种方法为何不用了)

方法:functions中添加

  1. add_filter('posts_orderby_request', 'wpjam_search_orderby_filter');  
  2. function wpjam_search_orderby_filter($orderby = ''){  
  3. if(is_search()){  
  4. global $wpdb;  
  5. $keyword = $wpdb->prepare($_REQUEST['s'],'');  
  6. 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";  
  7. }else{  
  8. return $orderby;  
  9. }  
  10. }  

文章地址:http://huilang.me/search-titl/

“让wordpress自带的搜索仅搜素标题内容” 有 11 条评论

  1. 小雨说道:

    自定义的参数你没有去详细看

  2. ★Extreme★说道:

    没啥必要吧,内容有时也是和搜索关键词有关联的

  3. DigData说道:

    ‘%{$keyword}%’
    像这种写法好像会导致SQL注入的吧!!!!
    ‘=’%’–

  4. 问问说道:

    我在是使用点点博客,请问能不能在自定义html里加入一段代码实现禁止网页中flash视频打开外部链接?就是通常视频网站返回原视频网址观看的那个按钮点击后不返回原视频网站。

  5. iShare说道:

    现在是真的木有留言板了么?我感觉我那个wordpress运行速度相当慢,不能忍了 :cry: ,看来红帽不给力

  6. 落梵说道:

    我喜欢写在functions文件里,一段代码直接搞定!改来改去太坑爹了!

回复本文

电子邮件地址不会被公开。 必填项已用*标注

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif