J'ai une requête comme celle-ci, je vais obtenir l'ID du produit. Cela fonctionne bien:
function ids(){
$args = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_key' => 'wppl_is_dax',
'meta_value' => '1'
);
// query
$the_query = new WP_Query( $args );
if( $the_query->have_posts() ): while( $the_query->have_posts() ) : $the_query->the_post();
global $product;
return $product->get_id();
endwhile; endif; wp_reset_query();
}
Mais maintenant, je veux utiliser le résultat de la requête ci-dessus dans la liste ci-dessous.
function tester2(){
$targetted_products = array(/* the ids from above function- ids()*/);
}
Je ne reçois qu'un seul identifiant si j'utilise $ targetted_products = array (ids ());
Votre fonction retourne $product->get_id();
, au lieu de cela, vous devriez enregistrer ces valeurs dans un tableau et à la fin, renvoyer ce tableau.
function ids(){
$args = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_key' => 'wppl_is_dax',
'meta_value' => '1'
);
// query
$the_query = new WP_Query( $args );
$allIds = array();
if( $the_query->have_posts() ): while( $the_query->have_posts() ) : $the_query->the_post();
global $product;
array_Push($allIds,$product->get_id());
endwhile; endif; wp_reset_query();
return $allIds;
}
Si vous ne voulez que des identifiants, la requête consomme beaucoup moins de mémoire si vous utilisez le paramètre fields
pour récupérer ce champ dans un tableau:
function ids(){
$args = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_key' => 'wppl_is_dax',
'meta_value' => '1'
'fields' => 'ids'
);
$the_query = new WP_Query( $args );
if( $the_query->have_posts() ){
return $the_query->posts;
}
return false;
}
function ids(){
$args = array(
'numberposts' => -1,
'post_type' => 'product',
'meta_key' => 'wppl_is_dax',
'meta_value' => '1'
);
// query
$the_query = new WP_Query( $args );
$post_ids = [];
if( $the_query->have_posts() ):
$post_ids = wp_list_pluck( $the_query->posts, 'ID' );
endif;
wp_reset_query();
return $post_ids;
}
en savoir plus https://codex.wordpress.org/Function_Reference/wp_list_pluck