发布的元字段是否可以存储不在数组中的多个值?

时间:2015-03-05 作者:lime

我有一个post\\u元字段,它似乎显示多个值,但它们似乎不在一个数组中。使用调试栏,这是我在“\\u custom\\u post\\u type\\u onomies\\u relationship”元字段中看到的内容。

screenshot

我想过滤这些id以返回标题。因为我使用的是Facet WP,所以我需要这些值在完成时不是数组。

$item_array = get_post_meta( $post->id, \'_custom_post_type_onomies_relationship\' );
foreach ( $item_array as $item_id ) {
   $title = get_the_title( $item_id );
   $item_array[] = $title;
}

update_post_meta( $post->id, \'_custom_post_type_onomies_relationship\', $item_array );
除了它是一个数组之外,它工作得很好。过滤之前,自定义字段是什么数据类型?如何复制该数据类型?

注意:在过滤之前,数据类型不能是数组,因为FacetWP可以理解它。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

元数据键不必是唯一的,您可以有多行相同的键,每行都包含单数值。如果您使用get_post_meta 获取密钥,并且不将第三个参数设置为true, 该函数获取所有单个值并将其作为数组返回,这与获取单个值不同,后者是保存为序列化字符串的数组。

如果要迭代返回的数组并保存新值,必须调用update_post_meta 对于数组中的每个项,设置函数的第4个参数,该参数是要更新的特定行的旧值。

$item_array = get_post_meta( $post->id, \'_custom_post_type_onomies_relationship\' );
foreach ( $item_array as $item_id ) {
   $title = get_the_title( $item_id );
   update_post_meta( $post->id, \'_custom_post_type_onomies_relationship\', $title, $item_id );
}

结束

相关推荐

在ARRAY()中添加布尔值的正确语法

条件php问题。。。我有一个数组,需要添加一个OR布尔值来检查其他类别4。不知道用于添加更多类别id的语法。我已经尝试了数组(\'cat\'=>-9,-4),但它只识别第一个id。query_posts( array_merge( $wp_query->query, array(\'cat\' => -9, \'ignore_sticky_posts\'