Categories 可移动类型:批量分配新的父类别,同时保留现有的子类别

Categories 可移动类型:批量分配新的父类别,同时保留现有的子类别,categories,movabletype,Categories,Movabletype,我有大约2000个关于活字设置(4.23)的条目,目前有主要/父类别,比如“苹果、梨、香蕉、葡萄”。我想把它们作为子类别,然后通过一些神奇的批量解决方案为它们分配一个新的父类别“水果” 它运行在一个MySQL数据库上,所以我的第一反应是浏览它,但是每个条目的表中不包含修改类别的字段。这些都是通过一个名为mt_placement的表分配的,进入其中有点像布谷鸟。我不懂任何魔法,但Perl和mt API就足够了。以下是如何在Perl中设置条目类别: my $place = MT::Placement

我有大约2000个关于活字设置(4.23)的条目,目前有主要/父类别,比如“苹果、梨、香蕉、葡萄”。我想把它们作为子类别,然后通过一些神奇的批量解决方案为它们分配一个新的父类别“水果”


它运行在一个MySQL数据库上,所以我的第一反应是浏览它,但是每个条目的表中不包含修改类别的字段。这些都是通过一个名为mt_placement的表分配的,进入其中有点像布谷鸟。

我不懂任何魔法,但Perl和mt API就足够了。以下是如何在Perl中设置条目类别:

my $place = MT::Placement->new;
$place->entry_id( $entry->id );
$place->blog_id( $entry->blog_id );
$place->category_id( $fruit_cat_id );
$place->is_primary(1);
$place->save
    or die $place->errstr;

您需要遍历条目,$FROUT\u cat\u id是上下文中博客中“FROUT”的数字类别id(类别是每个博客的,也就是说,您可以在两个不同的博客中拥有一个“FROUT”类别,但它们具有不同的类别id)。

我不知道有什么魔力,但Perl和MT API就足够了。以下是如何在Perl中设置条目类别:

my $place = MT::Placement->new;
$place->entry_id( $entry->id );
$place->blog_id( $entry->blog_id );
$place->category_id( $fruit_cat_id );
$place->is_primary(1);
$place->save
    or die $place->errstr;

你需要遍历条目,$fruit\u cat\u id是上下文中blog中“fruit”的数字类别id(类别是每个blog的,也就是说,你可以在两个不同的blog中有一个“fruit”类别,但它们有不同的类别id)。

添加父类别:你的机器翻译非常旧。在新的MTs中,您可以使用拖放界面将类别移动为子类别

你可能没有这个(否则你不会问),所以你将不得不大量使用数据库。创建(使用MT界面)一个名为“水果”的新类别,写下其id。
然后在数据库中的“mt_category”表中,对于要作为其子类别的每个类别,将“category_parent_id”值设置为水果类别的id


在将类别添加到每个有一个子项的条目之后:正如Francios所说,您需要将行添加到“mt_placement”。您可以使用Perl脚本(迭代现有位置并创建新位置)或使用一些奇特的SQL来完成。(在插入中选择?我对它一无所知)

添加父类别:您的机器翻译非常旧。在新的MTs中,您可以使用拖放界面将类别移动为子类别

你可能没有这个(否则你不会问),所以你将不得不大量使用数据库。创建(使用MT界面)一个名为“水果”的新类别,写下其id。
然后在数据库中的“mt_category”表中,对于要作为其子类别的每个类别,将“category_parent_id”值设置为水果类别的id


在将类别添加到每个有一个子项的条目之后:正如Francios所说,您需要将行添加到“mt_placement”。您可以使用Perl脚本(迭代现有位置并创建新位置)或使用一些奇特的SQL来完成。(在插入中选择?我对此一无所知)

您只想将现有类别设置为子类别,还是同时将这些类别的每个条目设置为新的父类别?还有,为什么?两者都有。将现有类别转换为子类别并添加新的父类别。至于原因:我重组了博客,为了让一组条目出现在右栏中,它们需要分配一个新的父类别。创建父类别后,您可以要求mt:entries标签包含_子类别。因此,无需实际将父类别添加到每个条目中。您只想将现有类别设置为子类别,还是同时将这些类别的每个条目设置为新的父类别?还有,为什么?两者都有。将现有类别转换为子类别并添加新的父类别。至于原因:我重组了博客,为了让一组条目出现在右栏中,它们需要分配一个新的父类别。创建父类别后,您可以要求mt:entries标签包含_子类别。因此,无需实际将父类别添加到每个条目中。