Как обновить метаданные произвольной таксономии с помощью функции update_field() ACF или других функций WordPress

31 дек. 2015 г., 10:27:29
Просмотры: 13.9K
Голосов: 1

Я пытаюсь обновить значение метаполя Advanced Custom Fields, связанное с термином произвольной таксономии

// Обновляем термин таксономии
$term_status = wp_update_term( $rate_id, 'rate', $term_data );

// Получаем ID термина
$term_id = $term_status['term_taxonomy_id'];

// Пытаемся обновить поле ACF
update_field( 'field_56829855eebc9', $rate_daily, $term_id );

Однако поле не обновляется. Я также пробовал использовать имя поля вместо ключа поля.

1
Комментарии

Вопросы, касающиеся сторонних плагинов (таких как Advanced Custom Fields), считаются не по теме на этом сайте. У ACF есть собственная служба поддержки.

Howdy_McGee Howdy_McGee
31 дек. 2015 г. 17:26:44
Все ответы на вопрос 3
3

Я разобрался, как это сделать..

Синтаксис функции update_field():

update_field($field_key, $value, $post_id)

МОЯ ОШИБКА: Я использовал неправильный параметр для $post_id, думая, что это ID термина таксономии.

ПРАВИЛЬНОЕ ИСПОЛЬЗОВАНИЕ: вместо ID термина ($term_id в моём вопросе) нужно использовать строку с названием таксономии и добавленным к ней ID термина.

То есть $post_id = $taxonomy.'_'.$term_id

Например: если ваша пользовательская таксономия называется foo, а ID термина 123

Тогда: $post_id = foo_123

Надеюсь, это кому-то поможет.

Это мой первый вопрос/ответ здесь.

31 дек. 2015 г. 11:23:20
Комментарии

Большое спасибо! Хочу также указать на опечатку. Вы забыли подчеркивание: должно быть $term_name . '_' . $term_id

jgthms jgthms
6 апр. 2018 г. 15:41:14

примечание: это должно быть название таксономии, за которым следует идентификатор термина

eballeste eballeste
21 июн. 2019 г. 02:21:26

@eballeste спасибо за это. У меня была такая же проблема, что привело меня к этому посту, и вы заставили меня замедлиться и пересмотреть все аспекты моей проблемы... только чтобы обнаружить, что я неправильно указал название своей собственной таксономии.

whakawaehere whakawaehere
5 февр. 2023 г. 15:20:37
0

Только это сработало у меня:

update_term_meta($term_id, $field['name'], $value);

В моем случае у меня есть таксономия "author" с пользовательским полем "institution", поэтому я сделал:

$my_author_taxonomy = get_term_by( "name", $author_taxonomy_name, 'author' );   
update_term_meta($my_author_taxonomy->term_id, "institution", $Institution);

Надеюсь, это поможет кому-то :)

1 июн. 2017 г. 15:01:52
0

Мне удалось успешно использовать wp_set_object_terms, как было предложено в официальной поддержке ACF.

3 июн. 2018 г. 02:22:29