Как упростить несколько WP_Query с разными мета значениями

Их всего 6 запросов, которые мне нужно использовать, ниже приведен список из 2 из них. Можно ли это упростить? Как видите, ключом являются разные значения meta_value, они есть 1-6,

<?php
$args1 = array(
'posts_per_page' => -1,
'post_parent' => $post->ID,
'post_type' => 'page',
'orderby' => 'date',
'order' => 'ASC',
'meta_key' => 'product_column',
'meta_value' => 1
);

$the_query1 = new WP_Query($args1);

if ($the_query1->have_posts()) {
while ($the_query1->have_posts()) {
$the_query1->the_post();
//do stuff
}
}
wp_reset_postdata();
?>

<?php
$args2 = array(
'posts_per_page' => -1,
'post_parent' => $post->ID,
'post_type' => 'page',
'orderby' => 'date',
'order' => 'ASC',
'meta_key' => 'product_column',
'meta_value' => 2
);

$the_query2 = new WP_Query($args2);

if ($the_query2->have_posts()) {
while ($the_query2->have_posts()) {
$the_query2->the_post();
//do stuff
}
}
wp_reset_postdata();
?>

1

Решение

Если вы просто хотите получить все сообщения с мета-значениями 1-6, вы можете передать их как массив

$args1 = array(
'posts_per_page' => -1,
'post_parent' => $post->ID,
'post_type' => 'page',
'orderby' => 'date',
'order' => 'ASC',
'meta_key' => 'product_column',
'meta_value' => array( 1,2,3,4,5,6 )

);

$the_query1 = new WP_Query($args1);

Отредактировано согласно комментариям:

Вы можете добавить значения в массив и запустить цикл foreach.

$meta_values = array( 1,2,3,4,5,6 );

foreach ( $meta_values as $meta_value ) {

$args = array(
'posts_per_page' => -1,
'post_parent' => $post->ID,
'post_type' => 'page',
'orderby' => 'date',
'order' => 'ASC',
'meta_key' => 'product_column',
'meta_value' => $meta_value

);

$the_query = new WP_Query($args);

if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
//...
}
}
wp_reset_postdata();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]