今天编辑小美眉问网站wordpress后台能不能实现只搜索标题,这个问题怎么可能难到ytkah呢?打开Stack Overflow一顿狂搜,总数有解决方案了,哈哈哈!一起来看看怎么操作吧。
打开主题目录的function.php文件,在合适的位置添加如下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
add_filter( 'posts_search' , 'ytkah_search_by_title' , 10, 2 ); function ytkah_search_by_title( $search , $wp_query ) { if ( ! empty ( $search ) && ! empty ( $wp_query ->query_vars[ 'search_terms' ] ) ) { global $wpdb ; $q = $wp_query ->query_vars; $n = ! empty ( $q [ 'exact' ] ) ? '' : '%' ; $search = array (); foreach ( ( array ) $q [ 'search_terms' ] as $term ) $search [] = $wpdb ->prepare( "$wpdb->posts.post_title LIKE %s" , $n . $wpdb ->esc_like( $term ) . $n ); if ( ! is_user_logged_in() ) $search [] = "$wpdb->posts.post_password = ''" ; $search = ' AND ' . implode( ' AND ' , $search ); } return $search ; } |
保存,上传,刷新缓存,后台搜索一下,看看搜索结果页关键词是不是只包含标题中
这个方法同样适用于前端的站内搜索,感兴趣的小伙伴可以试试
原文地址:https://www.cnblogs.com/ytkah/p/11607042.html