批量添加帖子的最佳实践

时间:2015-03-26 作者:ServAce85

我使用Custom Post Type UI 插件,需要输入数百个条目(>500)

如何批量导入此数据?E、 g.作为csv?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

有很多选项,但这些功能是您的朋友:

  • wp_insert_post - 将一些参数传递给它,它将创建一篇帖子,如果成功,则返回帖子IDwp_set_object_terms - 向其传递帖子ID、自定义分类法和要设置的术语fopen - 用于打开csv文件fgetcsv - 从csv中读取一行并返回该行以进行处理选项1-加载csv使用前面的函数,加载csv文件,然后针对每行取出值,使用这些值调用wp_insert_postwp_set_object_terms

    e、 g.csv:

    oranges,juicy and zesty,fruit
    apples,juicy but not so zesty,fruit
    cucumber,sandwiches go well with it,vegetable
    
    PHP:

    if (($handle = fopen("food.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $title = $data[0];
            $content = $data[1];
            $food_type = $data[2];
            $post_id = wp_insert_post( array(
                \'post_title\' => $title,
                \'post_content\' => $content,
                \'post_type\' => \'toms_food_post_type\',
            ));
            wp_set_object_terms( $post_id, $food_type, \'toms_food_taxonomy\' );
        }
        fclose($handle);
    }
    
    我是根据php的一个示例进行上述操作的。网

    如果您有标题,您可能需要一些逻辑来跳过第一行,并且需要一些逻辑来执行一些错误检查,例如,如果您的帖子没有创建,或者设置术语失败,等等

    选项2-WXR导入文件格式基于RSS。因此,如果您可以输出包含所有内容的RSS文档,并添加WordPress用于表示帖子类型和自定义分类的额外字段,那么您可以使用默认的WordPress导入器

    顺便说一句,在WordPress中管理你的帖子,注册帖子类型的最佳方式是完全不同的问题。如果您有3个问题,请创建3个问题,而不是将它们捆绑在一起。这样你就不需要一个三个答案都有的人来做点什么。

    进一步阅读fgetcsv docs at php.net

  • Information on the wxr format

SO网友:LindsayAnnB

你真的应该重新命名这个问题,并进一步完善你的问题。从我收集的信息来看,您实际上是在试图了解如何通过CSV将帖子添加到具有自定义字段的自定义帖子类型中。

我的建议是寻找一个从CSV导入帖子的插件,或者找到一个已经有post\\u类型列和自定义字段列的插件,以便扩展插件以包含该插件。

这个插件应该能帮你做到这一点https://github.com/dansullyLT/rs-csv-importer

我不能给出任何具体的编码/编程建议,因为这是一个非常广泛的问题,而不是关于特定函数的问题。

结束