@Nohaga

Как сделать поиск по полям ACF?

Перепробовал все хуки, вот например тут куча https://support.advancedcustomfields.com/forums/to...

Почему то стандартный поиск вордпресса не ищет по полям ACF прикреплённым к записям.
И плагин search anything например тоже не ищет, даже установлен специальный плагин
ACF: Better Search и всё равно не ищет, вордпресс обычный. Не пойму почему вообще может быть.
  • Вопрос задан
  • 1360 просмотров
Решения вопроса 1
@weart
У меня на одном из последних проектов вот такая комбинация работает

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' );


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' );


function cf_search_distinct( $where ) {
	global $wpdb;
	if ( is_search() ) {
		return "DISTINCT";
	}
	return $where;
}
add_filter( 'posts_distinct', 'cf_search_distinct' );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы