我有一个post\\u元字段,它似乎显示多个值,但它们似乎不在一个数组中。使用调试栏,这是我在“\\u custom\\u post\\u type\\u onomies\\u relationship”元字段中看到的内容。
我想过滤这些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可以理解它。
最合适的回答,由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 );
}