Как сделать поиск по мета-полю в обычном поиске в админ-панели WordPress?
Здравствуйте, помогите пожалуйста решить задачу- я хочу расширить поиск админ-панели Wordpress по значениям мета-полей, используя этот код.
function add_search_query_meta( $query ) { if ( is_admin() || ! $query->is_main_query() || ! $query->is_search ) return; $s = get_search_query(); $query->set( 'meta_query', [ 'relation' => 'OR', [ 'meta_key' => '_company_inn', 'value' => $s, 'compare' => 'LIKE', ], [ 'meta_key' => '_company_phone', 'value' => $s, 'compare' => 'LIKE', ], ] ); $query->set( 'post_type', 'company' ); } add_filter( 'pre_get_posts', 'add_search_query_meta' ); function modify_where_search_request( $where ) { if ( is_admin() || ! is_main_query() || ! is_search() ) return $where; global $wpdb; $s = get_search_query(); $where = preg_replace( [ "~ OR ({$wpdb->posts}.post_[^s]+ (LIKE '(?:%|{[^}]+}){$s}(?:%|{[^}]+})'))~i", // убираем поиск по контенту и цитате "~ANDs+([s(]+{$wpdb->wp_pn_companymeta}.meta_key)~i" // меняем AND условие мета-запроса на OR ], [ '', 'OR $1' ], $where ); return $where; } add_action( 'posts_where_request', 'modify_where_search_request' ); |
function add_search_query_meta( $query ) { if ( is_admin() || ! $query->is_main_query() || ! $query->is_search ) return; $s = get_search_query(); $query->set( 'meta_query', [ 'relation' => 'OR', [ 'meta_key' => '_company_inn', 'value' => $s, 'compare' => 'LIKE', ], [ 'meta_key' => '_company_phone', 'value' => $s, 'compare' => 'LIKE', ], ] ); $query->set( 'post_type', 'company' ); } add_filter( 'pre_get_posts', 'add_search_query_meta' ); function modify_where_search_request( $where ) { if ( is_admin() || ! is_main_query() || ! is_search() ) return $where; global $wpdb; $s = get_search_query(); $where = preg_replace( [ "~ OR ({$wpdb->posts}.post_[^s]+ (LIKE '(?:%|{[^}]+}){$s}(?:%|{[^}]+})'))~i", // убираем поиск по контенту и цитате "~ANDs+([s(]+{$wpdb->wp_pn_companymeta}.meta_key)~i" // меняем AND условие мета-запроса на OR ], [ '', 'OR $1' ], $where ); return $where; } add_action( 'posts_where_request', 'modify_where_search_request' );
Структура моей базы данных:
Вот ключи, к которым я пытаюсь получить доступ и получить значение:
Плагин вакансий какой-то самопис. Я перепробовал уже все методы связанные с этой темой, но все безрезультатно.
Вот сам плагин
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

