Copy (or inherit) taxonomy terms from one node to another

By Benjamin Melançon
on 12 Dec
0 comments

Description

function wsf_action_copy_terms($from_nid, $to_nid, $avoid_race = FALSE) {
// agaric-ben @TODO optimize;
// see http://agaricdesign.com/note/copy-taxonomy-terms-from-one-node-another
  if ($avoid_race) {
    // avoid pseudo race condition from taxonomy_node_get_terms static variable
    $result = db_query('SELECT tid FROM {term_node} WHERE nid = %d', $from_nid);
    $terms = array();
    while ($term = db_fetch_object($result)) {
      $terms[$term->tid] = $term;
    }
  } else {
    $terms = taxonomy_node_get_terms($from_nid);
  }
// WARNING: INSERT IGNORE is MySQL only - @TODO ben-agaric
  foreach ($terms as $tid => $term) {
    db_query('INSERT IGNORE INTO {term_node} (nid, tid) VALUES (%d, %d)', $to_nid, $tid);
  }
}
 

Post new comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <h1> <h2> <h3> <h4> <h5> <h6> <small> <pre> <strike> <sub> <sup> <kbd> <s>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.