使用.csv文件创建20,000个帖子或页面?

时间:2017-07-31 作者:Henry

这是我的挑战:我有一个。包含20000行数据的csv文件。

Each row 包含特定个人的5列数据。

我需要将每一行(每个人)填充到WordPress页面或帖子中。所以,换句话说,我需要从a转换20000行。csv转换为20000篇文章或页面(即HTML文件)。

我该怎么办?是否有插件,或者您是否建议这更像是一个mySQL命令?

感谢您的指导!

谢谢

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

Import posts from a .csv file with WP-CLI

如果我们的import.csv 以制表符分隔,有两列:

Planet Mars     The red planet. 
Planet Earth    Our blue planet.
然后我们可以借助这个来解析它answer, 我们使用的位置IFS=$\'\\t\' 而是作为制表符分隔符:

while IFS=$\'\\t\', read col1 col2; \\
do \\
    echo "$col1|$col2";
done < import.csv
请注意,列计数必须与文件的列相匹配。

现在,让我们使用WP-CLI创建帖子wp create post:

while IFS=$\'\\t\', read col1 col2; \\
do \\
  wp post create \\
    --post_title="$col1" \\
    --post_content="$col2" \\
    --post_author=1 \\
    --post_type=post \\
    --post_status=publish \\
done < import.csv
如果我们有额外的元数据,如从太阳到天文单位(au)的平均距离:

Planet Mars     The red planet.     1.52
Planet Earth    Our blue planet.    1.00
然后我们可以尝试:

while IFS=$\'\\t\', read col1 col2 col3; \\
do \\
  wp post create \\
    --post_title="$col1" \\
    --post_content="$col2" \\
    --post_author=1 \\
    --post_type=post \\
    --post_status=publish \\
    | xargs -I % wp post meta add % distance_au "$col3"; done < import.csv
如果wp post create 支持meta_input 的参数wp_insert_post().

我们也可以用wp_insert_post() 从带有wp eval-file command.

WP-CLIsupports 从csv文件导入用户,但我还没有看到帖子的这种核心功能。

我们可以编写自己的WP-CLI命令来导入csv帖子。

还有一些插件,比如WP CLI Import CSV, 这似乎已经做到了(我与之无关,也没有使用过)。

请注意,WP-CLI可以import wxr文件,如果您可以将csv文件转换为wxr文件。

还要注意的是,目前(4.8)WordPress在wp admin后端不能很好地处理层次化的帖子类型(即页面)。该类型的所有帖子将立即加载到父选择的下拉列表中。这不能很好地扩展,在后端工作时可能会导致PHP超时!参见示例here. 所以go for non-hierarchical post types (aka posts)在您的大量导入中。

结束

相关推荐

MySQL数据库较大,但表较小

我的网站由NetworkSolution托管,sql数据库大小限制为300MB。如果大小超过此限制,我们将无法访问wordpress管理仪表板。因此,目前其显示为441MB,并且其上限过高。他们迫使我以每年120美元的价格将数据库大小升级到1GB。但之前我的所有表的大小总计为45MB,但数据库大小为321MB,我必须请求他们授予我访问权限,所以他们使用它来重新同步/优化数据库,所以它的实际大小约为60MB。但现在他们声称我的网站已经将数据库大小增加到441MB。如何检查哪个表占用了最大存储空间?或者是什么