!
也想出现在这里? 联系我们
广告位

纯代码实现让 WordPress 只搜索文章标题排除文章内容

网站制作课程中,我们讲解了如何在自己做网站时,给 WordPress 网站添加搜索功能,对于 WordPress 网站来说,做一个搜索功能不是难事,我们的课程也讲到了 WordPress 搜索功能(search.php)模板制作。通过这个方法可以制作出下图的搜索效果,但这样制作的搜索功能唯一不好的是搜索结果很乱,不管是标题还是文章内容,只要包含搜索的词都b Y E } ~ 4会出来,这明显不是我们需要的。通过这种方法制作的搜索功能,用户在搜索时,是搜索整个网站的T 6 k @ = !内容,包括文章标题,文章内容。只都任一项包含了用户搜索的& f | S H j关键词都会显示出来。

为了让搜索结果更准确,我们可以限定 WordPress 只搜索文章标题,只有文章标题包含了用户搜索的关键词,才能被显示出来。

代码

  1. function __search_by_title_o6 n i { - Snly( $search, &$wp_query )
  2. {
  3. gN w = |loA ! xbal $wpdb;
  4. if ( empty( $search ) )
  5. return $sy E o h F r G + @earch; // skiG { 7 B , B @ - ^p processd U z ring - no search term in query
  6. $q = $wp_query->query_vars;
  7. $n = ! empty&X f j O ] a#40; $q['exact'] ) ? '' : '%'2 l c 6 p K k s;
  8. $search =
  9. $y 4 ^ h ] [searz J W H e . \ ?chand = '';
  10. foreach ( (array) $q['search_terms'] as $term )5 S F t { * {
  11. $termC 1 ? d a y * = esc_sql$ 6 M C { k 1 V F( like_escape( $term ) );
  12. $search .= "{$searo J Q _ v = K $chand}($3 Y x ` e { UwpdG 2 u O N E mb->po+ t 7sts.post_title LIKE '{$n}{$term}{$n}')";
  13. $searchand = ' AND ';
  14. N S g t d Y x125;
  15. if ( ! empty( $search K m { ; R +41; ) T & p s g C g123;
  16. $search = " AND ({$search}) ";
  17. if ( ! is_user_logged_in() )
  18. $search .= " AND ($wpdb->posts.post_password = '') ";
  19. }
  20. return $search;
  21. }
  22. add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

代码h + *

  1. add_p _ H s Efilter( 'pos% 8 + . 9 bts_search', 'dw_search_by_title', 10, 2 );
  2. function dw_search_by_titlec , p P X 1 s( $search, $wp_query &/ f x e H @#41; {f 0 u 7 V;
  3. if &% ; & a k R#40; ! empty( $search )` ! - s v f &&0 9 L - 6 ! empty&v k i z ; 8 /#40;W a q 8 M T | N $wp_query->query_vars['search_terms'] ) ) {
  4. global $wpdb;
  5. $q = $wp_query->query_vars;
  6. $n = ! e. k a fmptyR b Y T ? %( $q['exact']r ` V K h j j; ) ? '' : '%';
  7. $search = a_ ( p ! T $ C Krray();
  8. foreach{ w ] x H z C - # ( B K ]0; array ) $q['search_terms'] as $term )
  9. $search[] = $wpdb->prepare( "$wpdbZ M J u ) l ?->posts.post_titl4 u f s D ; N $e LIKE %s&q3 J Vuot;, $nV o x I P y H \ . $wpdb->esc_like( $term ) . $n );
  10. if ( ! is_user_logged_in() )
  11. $search[] = "$wpdb->posts.post_password = ''";
  12. $search = ' AND ' . implode( ' AND ', $search );
  13. &I i 8#125;
  14. return $search;
  15. }

上方代码二选一(不适用较低版本 WordPress),贴到主题 函数 functions.php 文件里,保存修改过的函数文件,即可实现限定 WordPress 只搜索文章标j Q a !题的功能。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

轻松调整WooCommerce产品详情页SKU位置

2022-8-19 13:58:02

WordPress教程

WordPress Tag 标签页调用缩略图与简介

2022-8-19 13:59:15

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索