以逗号分隔的元数显示来自多个值的帖子

时间:2020-04-12 作者:Lucas Smith

我已经获得了带有meta-key的主要产品:addons 和此键中的元值:129456,968945,495435 这三个数字中的每一个都是这些元值的关键。例如:

Post 1:meta\\u键:subproduct meta\\u值:129456

Post 2:meta\\u键:subproduct meta\\u值:968945

Post 3:meta\\u键:subproduct meta\\u值:495435

现在我想在主产品中显示这三个帖子。我的代码:

<?php if (!empty($addons = get_post_meta(get_the_ID(), \'addons\', true))):?>
<?php
$params = array(
    \'post_type\' => \'product\',
    \'meta_key\' => \'subproduct\',
    \'meta_value\' => $addons
);
$wc_query = new WP_Query($params); 
?>

<?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?>
<?php include(rh_locate_template(\'inc/parts/woomain.php\')); ?>  
<?php endwhile; ?>


<?php wp_reset_postdata(); ?>   
<?php endif;?>
对于一个元值,它起作用了,但对于几个元值,它不再起作用了。你如何看待这三篇文章?

1 个回复
SO网友:Shazzad

元字段Addon 具有元值129456,968945,495435 作为字符串。要在元查询中使用此值,应将该值拆分为一个数组。喜欢array( 129456, 968945, 495435 ).

WordPress有很好的功能wp_parse_id_list(), 它可以将逗号分隔的项拆分为数组。

<?php if ( ! empty( $addons = get_post_meta( get_the_ID(), \'addons\', true ) ) ) : ?>
<?php
$params = array(
    \'post_type\' => \'product\',
    \'meta_key\' => \'subproduct\',
    \'meta_value\' => wp_parse_id_list( $addons )
);
$wc_query = new WP_Query($params); 
?>

<?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?>
<?php include(rh_locate_template(\'inc/parts/woomain.php\')); ?>  
<?php endwhile; ?>


<?php wp_reset_postdata(); ?>   
<?php endif;?>