Задать вопрос
GivanniDev
@GivanniDev

Как сделать поиск по мета-полю в обычном поиске в админ-панели 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", // убираем поиск по контенту и цитате
            "~AND\s+([\s(]+{$wpdb->wp_pn_companymeta}.meta_key)~i" // меняем AND условие мета-запроса на OR
        ],
        [
            '',
            'OR $1'
        ],
        $where
    );

    return $where;
}
add_action( 'posts_where_request', 'modify_where_search_request' );


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

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

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

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

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