Как сделать поиск по мета-полю в обычном поиске в админ-панели WordPress?

Ссылка скопирована
0 ответов

Здравствуйте, помогите пожалуйста решить задачу- я хочу расширить поиск админ-панели 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' );

Структура моей базы данных:

Как сделать поиск по мета-полю в обычном поиске в админ-панели WordPress?

Вот ключи, к которым я пытаюсь получить доступ и получить значение:

Как сделать поиск по мета-полю в обычном поиске в админ-панели WordPress?

Плагин вакансий какой-то самопис. Я перепробовал уже все методы связанные с этой темой, но все безрезультатно.
Вот сам плагин

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

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

Вам также может быть интересно