Wie greife ich auf die Felder eines Taxonomiebegriffs zu?

7

Insbesondere versuche ich, auf ein Feld namens "Logo" innerhalb einiger Taxonomiebegriffe (Tweet- und Wikipedia-Bearbeitung) zuzugreifen, bei denen es sich um ein Bild handelt. Ich habe einen Newsfeed auf der Startseite meiner Website und für jedes Feedelement, das neben jedem Feedelement im Feed einen Begriff enthält, der auf eines dieser Bilder verweist. Was wäre der beste Weg, um das Logo-Feld aus jedem Taxonomiebegriff freizulegen oder darauf zuzugreifen?

Nerdhai
quelle

Antworten:

8

Wenn Sie auf den Inhalt der Drupal-Aufrufentitäten (Datenobjekte wie Knoten, Benutzer, Taxonomien usw.) zugreifen möchten, sollten Sie das Entitätsmodul verwenden . Es fügt einige nette Hilfsfunktionen hinzu. Was Nikit schreibt, ist nicht möglich, Sie würden so etwas tun:

$term_id_1 = $node->field_term['und'][0]['tid'];
$term_id_2 = $node->field_term['und'][1]['tid'];

Dann müssten Sie die Begriffe usw. laden. Stattdessen können Sie dies mit dem Entitätsmodul tun.

$images = array();

$node_wrapper = entity_metadata_wrapper('node', $node);
foreach ($node_wrapper->field_term as $term_wrapper) {
  $images[] = $term_wrapper->field_image->value();
}

$images wird nun ein Array mit dem Bildfeldobjekt sein, das Informationen wie uri, fid usw. enthält.

googletorp
quelle
5

Mit taxonomy_term_loadund erhalten taxonomy_term_load_multipleSie das vollständig geladene Termobjekt einschließlich aller benutzerdefinierten Felder.

Alternativ können Sie taxonomy_get_treeden endgültigen Parameter ( $load_entities) auf verwenden TRUE.

Joshua Stewardson
quelle
1
Vielen Dank an @Joshua_Stewardson für die Erwähnung des letzten Parameters von taxonomy_get_tree! Lebensretter.
Duncanmoo