Wordpress: пользовательский поиск по атрибуту - для работы нужны символы - PullRequest
0 голосов
/ 15 октября 2019

Я использую атрибут в продуктах woocommerce с именем CODE. Я хочу искать в интерфейсе, включая этот атрибут. Вот мой код в functions.php:

function tr_code_search_helper($wp)
{
    global $wpdb;

    // Check to see if query is requested
    if (! isset($wp->query['s']) || ! isset($wp->query['post_type']) || $wp->query['post_type'] != 'product')
        return;
    $code = $wp->query['s']; 
    $ids = $wpdb->get_col($wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_product_attributes' AND meta_value LIKE '%%%s%%';", $code));
    //print_r($wpdb->postmeta);
    if (! $ids)
        return;
    unset($wp->query['s']);
    unset($wp->query_vars['s']);
    $wp->query['post__in'] = array();
    foreach ($ids as $id) {
        $post = get_post($id);
        if ($post->post_type == 'product_variation') {
            $wp->query['post__in'][] = $post->post_parent;
            $wp->query_vars['post__in'][] = $post->post_parent;
        } else {
            $wp->query_vars['post__in'][] = $post->ID;
        }
    }
}
add_filter('pre_get_posts', 'tr_code_search_helper', 15);

. Это работает, если атрибут CODE содержит символы, но не работает, если он содержит только цифры. Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...