问题是,元数据不是唯一的键/值数据。
E、 g.使用“OneKey”键,您可以为同一篇文章提供大量的值。
因此,在一个平面表中,对于“OneKey”列,您应该有多行,其中post id是相同的,并且在我看来不是您想要的。
当然,您可以只取一个值,将所有元键视为单数,但单个元值也可以包含一个数据数组。。。在这种情况下,应该将该数组保存为序列化。
最后请注意,WP有一些用于内部作用域的隐藏元字段,例如“\\u edit\\u lock”或“\\u edit\\u last”等。。。,也许你会想跳过这些。
$posts = get_posts(\'nopaging=1\');
$flatten = array();
$blacklist = array(\'_edit_lock\', \'_edit_last\', \'_wp_old_slug\');
if ( ! empty($posts) ) { foreach ( $posts as $post ) {
$metas = get_post_custom( $post->ID );
$keys = array_keys($metas);
if ( ! empty($keys) ) { foreach ( $keys as $_key ) {
if ( in_array($_key, $blacklist) ) continue;
// the first value for every meta key
$post->$_key = maybe_serialize($metas[$_key][0]);
} }
$flatten[$post->ID] = $post;
} }
// for debug
echo \'<pre>\';
print_r( $flatten );
echo( \'</pre>\');
$flatten
将是一维对象数组(
WP_POST
类实例)。