如何在POST__IN和WP_QUERY中使用关联数组?

时间:2014-09-13 作者:Sam

我已将用户最喜爱的帖子存储在user_meta WordPress表格。数据以某种格式存储,例如a:1:{s:8:"post-134";s:3:"134";s:8:"post-136";s:3:"136";}.

我如何以数组的形式获取它,如array( 134, 136 ) 这样我就可以在下面的查询中使用它了。

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$query = new WP_Query( array( 
    \'paged\' => $paged, 
    \'post_type\' => \'post\', 
    \'post__in\' => I WANT AN ARRAY HERE 
) );
if ( $query->have_posts() ) : 
    while ( $query->have_posts() ) : $query->the_post();
        get_template_part( \'content\', \'fav\' )
    endwhile;
    wp_pagenavi();
    wp_reset_postdata(); else :
        ?><div class="alert alert-warning">You have not faved any post.</div><?php
endif;

2 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

看看PHP的array_values 作用或者,您可以typecast.

请注意,如果数组是如上所述的序列化形式,则无论哪种情况,都必须先取消序列化。

$numerical_array = array_values(
    unserialize(
        \'a:1:{s:8:"post-134";s:3:"134";s:8:"post-136";s:3:"136";}\'
    )
);

$numerical_array = (array) unserialize(
        \'a:1:{s:8:"post-134";s:3:"134";s:8:"post-136";s:3:"136";}\'
);

SO网友:Ruchi B

您可以使用以下代码从用户meta获取数据

$pastids = get_user_meta($user_id, $key);
$pastids 将自动成为数组。现在我们可以以任何格式更改其结构。

如果我们将数组传递给add\\u user\\u meta(),它将以序列化格式保存它,当我们使用get_user_meta()它以数组格式返回保存数据。

结束