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



我在可移动类型设置(4.23)上有大约2000个条目,这些条目目前分配了主/父类别,比如"苹果、梨、香蕉、葡萄"。我想把它们作为子类别,然后通过一些神奇的批量解决方案,为所有它们分配一个新的父类别"水果"。

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

添加父类别:您的MT相当旧。在新的MT中,您可以使用drag-n-drop界面将类别移动为子类别。

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

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

我不知道任何魔法,但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)。

最新更新