По умолчанию родной поиск вордпресс нихуя не работает по полям плагина ACF, так то это не проблема, но есть… бывает
Кусок это свистелки перделки добавить в functions.php, и все.

/**
 * Extend WordPress search to include custom fields
 *
 * http://adambalee.com
 */
 
/**
 * Join posts and postmeta tables
 *
 * http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_join
 */
function cf_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', 'cf_search_join' );
 
/**
 * Modify the search query with posts_where
 *
 * http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_where
 */
function cf_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', 'cf_search_where' );
 
/**
 * Prevent duplicates
 *
 * http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_distinct
 */
function cf_search_distinct( $where ) {
  global $wpdb;
 
  if ( is_search() ) {
    return "DISTINCT";
  }
 
  return $where;
}
add_filter( 'posts_distinct', 'cf_search_distinct' );

 

Добавляем поиск по полям ACF
Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *