如何从WP搜索中排除帖子正文

时间:2016-12-14 作者:nstampler

我的WooCommerce网站使用默认的WP搜索。我需要更改的一件事是从搜索中排除帖子正文(在我的情况下,是产品描述)。

现在,搜索将搜索标题、正文和分类术语。我希望它只搜索标题和分类术语。

为了澄清,我不想简单地将产品描述排除在搜索结果页面的显示之外。我想阻止搜索引擎查看产品描述。ie:搜索引擎应该只在产品名称和分类术语中查找匹配项。

我到处搜索,找不到如何做到这一点的信息。有什么建议吗?

谢谢

1 个回复
SO网友:Gareth Gillman

要从搜索中删除元素,请使用post\\u search筛选器修改搜索的SQL查询,例如仅拉入标题。

function ni_search_by_title_only( $search, &$wp_query ){
 global $wpdb;
 if ( empty( $search ) )
  return $search;
 $q = $wp_query->query_vars;
 $n = ! empty( $q[\'exact\'] ) ? \'\' : \'%\';
 $search =
 $searchand = \'\';
 foreach ( (array) $q[\'search_terms\'] as $term ) {
  $term = esc_sql( like_escape( $term ) );
  $search .= "{$searchand}($wpdb->posts.post_title LIKE \'{$n}{$term}{$n}\')";
  $searchand = \' AND \';
 }
 if ( ! empty( $search ) ) {
  $search = " AND ({$search}) ";
  if ( ! is_user_logged_in() )
   $search .= " AND ($wpdb->posts.post_password = \'\') ";
 }
 return $search;
}
add_filter( \'posts_search\', \'ni_search_by_title_only\', 500, 2 );
摘自https://nathaningram.com/restricting-wordpress-search-to-titles-only/

就我个人而言,我更喜欢这个插件,因为它可以让我完全控制搜索中需要的每个字段,我使用的是relevanssi. 它应该很容易做到你想要的。

相关推荐

nothing happen in search form

我想创建搜索表单,但当我搜索时什么都没有发生,这是代码:索引。php: <div class=\"tech-btm\"> <?php get_search_form();?> </div> 搜索表单:<form role=\"search\" method=\"get\" id=\"searchform\" action=\"<?php echo home_url(\'/\')?>\"> &