如何使用Foreach在多个帖子中从自定义字段获取内容?

时间:2015-01-10 作者:user1721230

因此,我尝试使用foreach从多篇帖子中的自定义字段中提取内容,但这行不通。我可以让它用于一个简单的textarea字符串,但我很难让它用于数组。这是字符串的工作代码:

$posts = get_posts(array(
\'numberposts\' => -1,
\'post_type\' => \'post\',));
foreach($posts as $post)
{
$string = get_post_meta($post->ID, \'simple_string\', true);
echo $string;
}
在站点的其他地方,此代码用于进入特定的posts自定义字段数组:

$arr = get_field(\'array\');
$arr2 = $arr[0][\'string\'];
$string = implode(", ",$arr2);
echo $string;
为什么这样不行?

$posts = get_posts(array(
\'numberposts\' => -1,
\'post_type\' => \'post\',));
foreach($posts as $post)
{
$arr = get_post_meta($post->ID, \'array\', true);
$arr2 = $arr[0][\'string\'];
$string = implode(", ",$arr2);
echo $string;
}
提前感谢您的关注。

2 个回复
SO网友:user1721230

我使用的自定义字段来自插件ACF(高级自定义字段)。

最后,我查看了ACF网站,我本来应该这样做的,发现函数get\\u字段可以指定帖子,所以下面是工作代码:

$posts = get_posts(array(
\'numberposts\' => -1,
\'post_type\' => \'post\',));
foreach($posts as $post)
{
$arr = get_field(\'array\', $post->ID);
$arr2 = $arr[0][\'string\'];
$string = implode(", ",$arr2);
echo $string;
}

SO网友:Justin Waulters

是的,get_field() 更容易,但是get_post_meta() 几乎总是表现得更好,因为get_field() 使用更多数据库查询。

如果我没记错的话,它是这样工作的:

$posts = get_posts(
    array(
        \'numberposts\' => -1,
        \'post_type\' => \'post\',
    )
);
foreach($posts as $post) {
    $serialized_string = get_post_meta( $post->ID, \'array\', true );
    $arr = unserialize( $serialized_string ); // unserialize it here
    $arr2 = $arr[0][\'string\']; // assuming this is a valid index
    $string = implode( ", ", $arr2 );
    echo $string;
}
如果不起作用,请var_dump() 属于$serialized_string 并发布结果。

干杯

结束

相关推荐

对index.php和Single.php进行更深入的编辑

我想完全定制主博客页面(index.php)和个人帖子页面(single.php)的CSS和HTML。然而,在索引中查找。php和single。php,我不知道如何获得我正在寻找的HTML/CSS,因为它似乎是通过外部php函数实现的。作为一个例子,我想有我的索引。html页面最近的两到三篇帖子都有类似的内容:<div class=\"post_summary\"> <img src=\"post_image1.png\" class=\"post_image\"/>&#x