http://www.php.cn/blog/detail/2482.html
最近业务需要在网站上批量添加大量的文章。一篇一篇地手动添加绝对会搞死我,所以,我就开始寻找批量添加的方法。其实,文章的相关内容都已经在本地的数据库里了。我最先想到的方法是通过sql语句直接把数据导入线上的库里。
于是我通过
INSERT INTO target_table (key1, key2...) SELECT key1', key2' ... FROM source_table;
将数据插入到了线上的表中。打开页面一看,全是乱码。于是,我又在插入前设置了一下编码,还是有问题。
由于我是一个不善长sql的人,我调整了一下策略。偶然间,我发现了一个WordPress的内置函数 ‘wp_insert_post’。嗯,就是他了。
于是,我将目标数据导出成php_array,然后引入到我的脚本中,通过wp_insert_post函数添加到数据库中。
foreach( $php_array as $item ){ $arg = array( 'post_title' => $item['title'], 'post_content' => $item['content'], 'post_excerpt' => $item['excerpt'], 'post_type' => 'post', 'post_status' => 'public', 'meta_input' => array( 'meta_key' => 'meta_value' ) ); wp_insert_post( $arg ); }
这样,就通过WordPress“合法”的方式批量添加了文章,而且meta_input中可以添加自定义栏目,可以说非常棒了。
wp_insert_post具体的使用方法参见:官方文档
https://developer.wordpress.org/reference/functions/wp_insert_post/