WordPress搜索文章自界说字段(例如:产物编号)

wordpress默认搜索是搜索文章题目以及检索文章内容里的要害字,然则对于一些电商网站来说,搜索产物编号也是很主要的一部门,然则产物编号一样平常是一个自界说字段,无法被搜索到,这时该怎么办呢?

接下来让主题镇给出解决方案:

首先,让系统的搜索能搜索到postmeta数据表:

function MBT_search_join( $join ) {
 global $wpdb;
 if ( is_search() ) {
 $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta 
    . '.post_id ';
 }
 return $join;
}
add_filter('posts_join', 'MBT_search_join' );

然后在模糊查询里加入查询字段:

function MBT_search_where( $where ) {
 global $pagenow, $wpdb;
 if ( is_search() ) {
 $where = preg_replace(
 "/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
 "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", 
  $where );
 }
 return $where;
}
add_filter( 'posts_where', 'MBT_search_where' );

然则,这样的话可能会泛起搜索效果重复的情形,那么得用数据库要害字DISTINCT过滤下:

function MBT_search_distinct( $where ) {
 global $wpdb;
 if ( is_search() ) {
 return "DISTINCT";
 }
 return $where;
}
add_filter( 'posts_distinct', 'MBT_search_distinct' );

将以上三段代码加到主题的functions.php末尾(最后一个?>之前)即可!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3308869544
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有猫币奖励和额外收入!

主题镇 WP教程 WordPress搜索文章自界说字段(例如:产物编号) https://zhutizhen.com/14986.html

永远为用户服务的镇长!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关文章