Wordpress从自定义字段输出到查询数组


Wordpress output to array in query from custom field

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

我想要检索该数组并在循环中输出它,所以我创建了以下代码:

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

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

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

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

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

JSON编码

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

或者,可以使用PHP序列化

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

如果你想保留你的字符串,你可以爆破它:

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

使用这些方法中的任何一个都可以。最后,您将以如下示例结束:

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