Wordpress在自定义字段的查询中输出到数组

时间:2016-11-15 16:35:37

标签: php arrays wordpress

我在我的类别中创建了一个名为“sec1array”的自定义字段,以便我可以添加一个数组,例如 1,2,3,4

我想检索那个数组并在循环中输出它,所以我创建了这个代码。

$seconearray = array($cat_data['sec1array']);

$args = array( 
'post__in' => $seconearray
);

然而,它似乎只是输出数组中的第一个帖子。这与逗号输出的方式有关吗?

如果我打印$ seconearray它输出正确,例如 1,2,3,4

1 个答案:

答案 0 :(得分:2)

您正在做的是在数据库中存储字符串值"1,2,3,4",当您尝试从array("1,2,3,4")构建数组时,您最终只需为该新数组分配一个值。这就是为什么它只包含一个值。

您需要以可序列化的格式存储您的值,以便在将其保存到数据库后将其转换回数组。有很多方法可以做到这一点,我相信其他人会提供更多的例子:

JSON encode

json_encode(array(1,2,3,4)); // store this in your db
json_decode($cat_data['sec1array']); // outputs an array

或者,您可以使用PHP serialize

serialize(array(1,2,3,4)); // store this in your db
unserialize($cat_data['sec1array']); // outputs an array

如果您想保留字符串,可以explode

explode(',', $cat_data['sec1array']); // outputs your array of 1,2,3,4.

使用这些方法中的任何一种都可行。最后,你最终会得到一个例子:

$seconearray = explode(',', $cat_data['sec1array']);
$args = array( 
    'post__in' => $seconearray
);