Blog

Como forçar a pesquisa de WordPress por campos do acf (SCF)

Uncategorized

Como forçar a pesquisa de WordPress por campos do acf (SCF)

// Search by custom custom-fields

function cf_search_join( $join ) {
  global $wpdb;

  if ( is_search() || is_page(495) ) {    
      $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id ';
  }

  return $join;
}
add_filter('posts_join', 'cf_search_join' );


function cf_search_where( $where ) {
  global $pagenow, $wpdb;

  if ( is_search() || is_page(495)) {
      $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', 'cf_search_where' );

function cf_search_distinct( $where ) {
  global $wpdb;

  if ( is_search() || is_page(495)) {
      return "DISTINCT";
  }

  return $where;
}
add_filter( 'posts_distinct', 'cf_search_distinct' );

Leave your thought here

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *