Wie füge ich in D7 Felder zu Taxonomiebegriffen programmgesteuert hinzu / ändere sie? Sie sind klar feldfähig und in der Benutzeroberfläche kann ich Felder in ihnen hinzufügen und bearbeiten, genau wie in Knoten, aber es erwies sich als keine leichte Aufgabe im Code. Angenommen, ich habe einen Wortschatz namens Fruit mit Begriffen wie Äpfel und Bananen. Ich habe ein Feld mit dem Namen hinzugefügt main_article_id
, sodass alle Begriffe Name, Beschreibung und Hauptartikel-ID haben. Wenn ich einen Knoten mit dem Namen Äpfel erstelle, der einen Verweis auf das Fruchtvokabular ( field_fruit
) enthält und der Begriff Äpfel ausgewählt ist, sollte der Code den Begriff Äpfel aktualisieren und sein main_article_id
Feld auf setzen $node->nid
. Hier ist mein Code:
//hook_node_insert fires after new node has been inserted into db
function MYMODULE_node_insert($node)
{
$taxonomy_term_id = $node->field_FRUIT[LANGUAGE_NONE][0]['value'];
$taxonomy_term = taxonomy_term_load($value['tid']);
if($taxonomy_term != FALSE)
{
//doesn't work
$taxonomy_term->field_main_article_id[LANGUAGE_NONE][0]['value'] = $node->nid;
taxonomy_term_save($taxonomy_term);
}
}
$value['tid']
, entschuldigen Sie den Fehler im Code. Aber ich benutze keine Module, um mein Feld zu erstellen. Ich habe es gerade manuell auf der Seite "Vokabeln bearbeiten" hinzugefügt. Ich habe versucht, taxonomy_term zu betrachten, als ich es in der Benutzeroberfläche bearbeitet habe. Innerhalb von hook_taxonomy_term_presave ($ term) $ term sah es so aus inprint_r()
: stdClass Object ([tid] => 20 [vid] => 6 [name] => Fruit ... [field_main_article_id] => Array ([und] => Array ([0] => Array ([Wert] => 14) )