通过CSV导入时创建类别

时间:2019-06-25 作者:Aaron

我有一个CSV,我正在通过我制作的自定义插件导入。这将创建一个具有几个ACF字段的CPT。此CPT称为Formula,它有一个与之关联的分类法,称为Formula\\u type。我能够成功导入大约300篇帖子,但我在CSV中有一个类别栏。我很好奇在解析CSV时如何创建类别。

例如,在解析时,循环命中一个称为利尿剂的类别。它为此创建一个类别并将其添加到wp_insert_post, 但是,如果已创建,则会将其分配给该职位。以下是我的循环当前的样子:

tldr:在我当前的循环中,如何创建新的类别,并在已经创建的情况下将类别添加到我的帖子中。

foreach($records as $results) {

        $post = array(
            \'post_title\'    => $results[\'drug_name\'],
            \'post_type\'     => \'formula\',
            \'post_status\'   => \'publish\',
        );

        $post_id = wp_insert_post($post);
        update_field( \'field_5cfe5ac146838\', $results[\'indication\'], $post_id ); // indication
        update_field( \'field_5cfe629f3693b\', $results[\'amount\'], $post_id ); // amount
        update_field( \'field_5d0d086c5d916\', \'true\', $post_id ); // imported
        update_field( \'field_5d0d0998796cd\', $results[\'drug_id\'], $post_id ); // drug ID

    }

1 个回复
SO网友:Aaron

我可以通过检查这个词是否存在来解决这个问题,然后使用tax_input 在里面wp_insert_post()

// Check if the category exists
$category_term = term_exists(trim($category), \'formula_types\', 0);

// Create category if it doesn\'t exist
if (!$category_term) {
    $category_term = wp_insert_term(trim($category), \'formula_types\', array(\'parent\' => 0));
}
array_push($formattedCategories, (int)$category_term[\'term_taxonomy_id\']);

$post = array(
    \'post_title\'    => $results[\'drug_name\'],
    \'post_type\'     => \'formula\',
    \'post_status\'   => \'publish\',
    \'tax_input\'    => array(
            \'formula_types\' =>
            $formattedCategories,
    )
);

相关推荐

将元数据从CSV加载到CPT时出现问题

我有一个自定义帖子类型,它有一个标题和两个元框自定义字段$price = isset( $we_productMetas[\'price_box\'] ) ? esc_attr( $we_productMetas[\'price_box\'][0] ) : \'\'; $color = isset( $we_productMetas[\'color_box\'] ) ? esc_attr( $we_productMetas[\'color_box\'][0] ) : \'\'; 我在CS