Bagaimana saya bisa menetapkan nilai referensi istilah taksonomi ke beberapa istilah menggunakan PHP?

7

Pertanyaan ini menjelaskan cara mengatur nilai bidang referensi istilah menggunakan PHP. Tetapi apa yang harus saya lakukan jika saya ingin menetapkan nilai bidang referensi istilah di profil pengguna ke beberapa istilah?

Saya mencoba untuk menetapkan nilai ke ID jangka 27 dan 28. Berikut ini kode saya:

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

Jawaban:

7

Dengan asumsi bidang diatur untuk menerima beberapa catatan ...

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

Atau Anda bisa terus menambahkan ke array (tanpa mengetahui indeks yang tersedia berikutnya) seperti ini:

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

Anda bisa menetapkan nilai daftar yang berisi pembungkus metadata entitas . Sebagai contoh:

<?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();
?>
kenorb
sumber