【问题标题】:Movable Type: Assign New Parent Category in Bulk while Keeping Existing as Sub-Category可移动类型:批量分配新的父类别,同时保留现有的子类别
【发布时间】:2013-06-25 14:11:37
【问题描述】:

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

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

【问题讨论】:

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

标签: categories movabletype


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我不会魔法,但是 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)。

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多