Come posso impostare il valore di un riferimento di termine tassonomia a più termini usando PHP?


7

Questa domanda descrive come impostare il valore di un campo di riferimento termine utilizzando PHP. Ma cosa devo fare se voglio impostare il valore di un campo di riferimento termine nel profilo utente su più termini?

Sto cercando di impostare il valore sui termini ID 27 e 28. Ecco il mio codice finora:

$user->field_yourfield_name[LANGUAGE_NONE][0]['tid'] = 27;
user_save($user);

Risposte:


7

Supponendo che il campo sia impostato per accettare più record ...

$user->field_yourfield_name[LANGUAGE_NONE][0]['tid'] = 27;
$user->field_yourfield_name[LANGUAGE_NONE][1]['tid'] = 28;
// etc

Oppure puoi semplicemente continuare ad aggiungere all'array (senza conoscere il prossimo indice disponibile) in questo modo:

$user->field_yourfield_name[LANGUAGE_NONE][]['tid'] = 27;
$user->field_yourfield_name[LANGUAGE_NONE][]['tid'] = 28;

1

È possibile assegnare a un valore di elenco che contiene wrapper metadati entità . Per esempio:

<?php
  $wrapper = entity_metadata_wrapper('user', $user);
  foreach ($wrapper->field_taxonomy_terms->getIterator() as $delta => $term_wrapper) {
    // $term_wrapper may now be accessed as a taxonomy term wrapper.
    $label = $term_wrapper->name->value();
    $tid = $term_wrapper->tid->value();
    // you can also set the values
    $term_wrapper->name = 'New label';
    $term_wrapper->tid = array(123, 1234); // or ...
    $term_wrapper->tid->set($tids_to_set);
  }
  $wrapper->save();
?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.