[WordPress]自定义和扩展WordPress搜索功能

2012年6月26日21:04:16 发表评论 7,670 views

 

  从网上下载了一个wordpress主题,底部文件还是通过加密的,郁闷很。好不容易修改完毕了才发现站内搜索功能太扯淡了---竟然不能用,郁闷死。于是打算自己动手丰衣足食,对wordpress默认的搜索功能进行修改,要求按照作者,按照文章标题,以及按照文章内容,这三个条件进行搜索。

  首先说下添加的方法,一是自己创建一个搜索框出来,二是使用wordpress默认的搜索框。代码如下:

 //直接使用默认搜索框放到你需要显示的地方即可

//自己手动创建,需要注意的是里面的name="s" id="s" 这个是必须有的,而且是不能改的。 //如果改了的话wordpress就获取不到你要搜索的内容了。

  添加好之后,你需要创建一个search.php文件出来,用来显示搜索内容,如果不创建它会在index.php里面显示,不过建议大家创建出来便于自己定义。创建好之后就可以在里面添加显示代码。默认的显示方法是



  如果你想自己定义搜索显示内容,不使用默认显示方法。下面是何连超自己简单写了一段。

//上面这一段放到需要显示的地方。下面这一段是放在search.php文件里面 get_results("SELECT * FROM $wpdb->users WHERE display_name like '%".$resault."%'"); if(!empty($user_info)) { foreach($user_info as $key => $val) { $posts_info = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' and post_status = 'publish' and post_author = '".$val->ID."'"); foreach($posts_info as $k=>$v) { ?>
  • post_title; ?>
  • 抱歉,没有找到符合搜索条件的内容!"; } } elseif($tiaoj == "title") { //按照文章标题进行显示 $posts_info = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' and post_status = 'publish' and post_title like '%".$resault."%'"); if(!empty($posts_info)) { foreach($posts_info as $k=>$v) { ?>
  • post_title; ?>
  • 抱歉,没有找到符合搜索条件的内容!"; } } elseif($tiaoj == "posts") { //按照文章内容进行显示 $posts_info = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' and post_status = 'publish' and post_content like '%".$resault."%'"); if(!empty($posts_info)) { foreach($posts_info as $k=>$v) { ?>
  • post_title; ?>
  • 抱歉,没有找到符合搜索条件的内容!"; } }

      如果你想自己定义搜索显示内容,不使用默认显示方法。下面是参考别的童鞋简单的写了一段。

     

      大概效果如下:

      以上就是何连超通过使用数据库语句进行模糊搜索然后按照条件来进行显示。不过这里还需要一些改进的地方,比如添加分页,还有就是其他更简单的方法,这个需要大家集思广益,提出更好的方法和建议,当然了插件就不需要啦,呵呵!

     

     

    • 我的微信
    • 这是我的微信扫一扫
    • weinxin
    • 我的微信公众号
    • 我的微信公众号扫一扫
    • weinxin

    发表评论

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: