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);
}
}
quelle
$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) )'value'
dann definitiv sein . Die Referenz für den Taxonomiebegriff wird jedoch definitiv auch sein'tid'
. Vielleicht müssen Sie nur diese Zeile ($taxonomy_term_id = $node->field_FRUIT[LANGUAGE_NONE][0]['tid'];
) und nicht die andere änderntaxonomy_term_load($taxonomy_term_id)
und es sah so aus: stdClass Object ([tid]
=> 1[vid]
=> 2[name]
=> Äpfel[description]
=>[format]
=> full_html[weight]
=> 0[vocabulary_machine_name]
=> Frucht[rdf_mapping]
=> ...). Mein Schatzfield_main_article_id
ist nirgends zu finden (ich kann es aber in der Benutzeroberfläche perfekt sehen). Sollte sotaxonomy_term_load
arbeiten?taxonomy_term_save
auch für die Aktualisierung der Eltern eines Semesters arbeiten? Ich versuche, es für diesen Zweck zu verwenden, aber ich habe ein Problem mit der Aktualisierung der Daten.