Wordpress менее дорогой запрос для получения всех ценовых значений - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу создать фильтр ценового диапазона для своих продуктов в Woocommerce, и я не знаю, каков наилучший подход.На мой взгляд, есть 2 варианта.

Первый вариант - создать новый Wp_Query и получить все мета значения в массиве.Или используя $ wpdb и получите значения непосредственно из базы данных.

Какое решение будет наилучшим для производительности?Есть ли другой вариант?

Первое решение будет что-то вроде этого

$args = array(
        'post_type' => 'product',
        'posts_per_page' => -1
    );
$products = new WP_Query($args);
$prices = array();
    if($products->have_posts()):while($products->have_posts()):$products->the_post();
        $price = get_post_meta(get_the_ID(), '_price', true);
        $prices[] = $price;
endwhile;
endif;

Второе решение будет что-то вроде этого

global $wpdb;
    $prices = $wpdb->get_col( $wpdb->prepare( "
        SELECT pm.meta_value FROM {$wpdb->postmeta} pm
        LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
        WHERE pm.meta_key = '%s'
        AND p.post_type = '%s'
    ", '_price',  'product' ) );

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