将数据从WordPress导出到平面表

时间:2013-09-19 作者:dcolumbus

我需要能够导出WordPress中的数据,以便每个object 被包含在一行中,就像一张平桌。

假设每个post类型都是自己的数据库表,其中包含表示所有元数据的列。

现在,我正经历着最艰难的时刻key / value 配对元数据。

我试过了get_posts 然后在每个帖子上循环并提取元数据get_post_meta ... 但这只会产生一堆复杂的数组数据。

推荐的方法是什么?

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

问题是,元数据不是唯一的键/值数据。

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 类实例)。

结束

相关推荐

linking pic previews to posts

该网站是一个关于212个孩子的主题,位于www.travelwithcastle。com公司我想将帖子预览(主页上)上的图片链接到实际帖子——现在,当我单击图片时,它没有链接。仅链接标题文本。我喜欢这样,我还想链接图片预览。有人知道我怎么做吗?我的猜测是,这与我如何在内容中编写永久链接有关。php文件,但我不能对此发誓。为此,我的内容如下。php代码的当前外观。<?php /** * The default template for displaying content. Used