【问题标题】:Save programmatically nested taxonomy term at once一次保存以编程方式嵌套的分类术语
【发布时间】:2010-12-18 13:53:20
【问题描述】:

下面的代码允许使用 Drupal API 创建分类术语

$terms = array(   

      $term1 = array(
      'name' => 'term name', 
      'description' => '', 
      'parent' => array(0), 
      'vid' => $vid,
       ),

      $term2 = array(
      'name' => 'term name', 
      'description' => '', 
      'parent' => array(0), 
      'vid' => $vid,
       ),

      $term3 = array(
      'name' => 'term name', 
      'description' => '', 
      'parent' => array(0), 
      'vid' => $vid,
       ),
);

foreach ($terms as $term) {
$term = (object) $term;
taxonomy_term_save($term);

}

它适用于同级术语,但如果我需要创建嵌套分类树怎么办?有一个“父”键应该包含父术语 ID 的数组来做到这一点

在父术语保存到数据库之前,我如何知道这些 ID?

【问题讨论】:

    标签: drupal taxonomy drupal-taxonomy


    【解决方案1】:

    通过taxonomy_term_save(更具体地说,通过taxonomy_term_save 调用drupal_write_record)将键添加到传递的术语对象:

    $term1 = array(
          'name' => 'term name', 
          'description' => '', 
          'parent' => array(0), 
          'vid' => $vid,
    );
    $term1 = (object) $term1;
    taxonomy_term_save($term1);
    echo $term1->tid; // now where did that come from?
    

    【讨论】:

    • ...但是您发布了相同的代码。我需要在 'parent' 键中定义一些 id(例如 'parent' => array(1, 2, 3))但是在保存到 dB 之前我怎么知道这些 id?我需要保存整个嵌套分类树,而不是保存第一个父项而不是子项。
    • ...但我添加了一行。该行告诉您如何访问刚刚创建的术语的键。使用该键添加子术语。
    • 正是这个。在实际先保存父术语之前,您无法知道需要用作术语父术语的术语 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多