Làm cách nào tôi có thể đặt giá trị của tham chiếu thuật ngữ phân loại cho nhiều thuật ngữ bằng PHP?


8

Câu hỏi này mô tả cách đặt giá trị của trường tham chiếu thuật ngữ bằng PHP. Nhưng tôi phải làm gì nếu tôi muốn đặt giá trị của trường tham chiếu thuật ngữ trong hồ sơ người dùng thành nhiều thuật ngữ?

Tôi đang cố gắng đặt giá trị thành ID hạn 27 và 28. Đây là mã của tôi cho đến nay:

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

Câu trả lời:


8

Giả sử trường được thiết lập để chấp nhận nhiều bản ghi ...

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

Hoặc bạn chỉ có thể tiếp tục nối thêm vào mảng (mà không cần biết chỉ mục có sẵn tiếp theo) như thế này:

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

1

Bạn có thể gán cho một giá trị danh sách có chứa trình bao bọc siêu dữ liệu thực thể . Ví dụ:

<?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();
?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.