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);

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;

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();
?>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.