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

时间:2013-06-27 21:58:53

标签: categories movabletype

我在Movable Type设置(4.23)上有大约2,000个条目,目前有主要/父类别分配,例如“苹果,梨,香蕉,葡萄”。我希望将这些作为子类别保留,然后通过一些神奇的批量解决方案为它们分配一个新的父类“水果”。

它在MySQL数据库上运行,所以我的第一直觉是通过那里,但每个条目的表不包含修改类别的字段。那些是通过一个名为mt_placement的表来分配的,而且它是那种杜鹃。

2 个答案:

答案 0 :(得分:1)

添加父类:您的MT很老了。在新MT中,您可以使用拖放界面将类别移动为子类别。

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

接下来将类别添加到每个具有其中一个子类的条目:您需要向“mt_placement”添加行,正如Francios所说。您可以使用Perl脚本(迭代现有的展示位置并创建新的展示位置)或使用某些花哨的SQL来完成此操作。 (在插入内部选择?我对此一无所知)

答案 1 :(得分:0)

我不知道任何魔法,但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_cat_id是博客中“水果”的数字类别ID(类别是每个博客,即你可以在两个不同的博客中有一个“水果”类别,但他们将有不同的类别ID。)