WordPress: использование wp_set_object_terms (создание связи между объектами и таксономиями)
wp_set_object_terms( интервал $object_id, строка|целое|массив $термины, нить таксономия $, логическое значение $append = ложь)
1. Параметры
$object_id
Идентификатор объекта, например идентификатор сообщения.
$условия
Основная проблема кроется здесь.
Если тип данных является строкой, строка будет использоваться в качестве пула. Если термин пула существует, будет создана связь между объектом и термином. Если он не существует, термин пула будет сначала создается, а затем будут созданы объект и термин.
Если тип данных является целым числом, это значение будет использоваться в качестве идентификатора термина. Если термин с этим идентификатором существует, этот термин будет связан.
Если тип данных является массивом, что бы я ни пытался, я не могу создать связь между объектом и термином. Итак, для массивов я использую цикл foreach для создания каждой связи.
$таксономия
Пуля таксономии, строка.
$append
Если оно ложно, связь между исходным объектом и термином будет перезаписана и обновлена. Если это правда, создается новая связь, то есть между объектом и той же таксономией добавляется новая терминальная связь.
2. Код
foreach ($custom_terms as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { wp_set_object_terms($postid,(int)$v,$key,true); //Та же таксономия ($key) , используйте true для создания отношений между всеми терминами и объектами в массиве. } }else{ wp_set_object_terms($postid,(int)$value,$key); //Все данные, передаваемые из интерфейса, представляют собой строки. Чтобы гарантировать, что $value является целым числом, используется (int). } }
3. Возврат
(массив|WP_Error) Идентификаторы таксономии терминов затронутых терминов или WP_Error при неудаче.
4. Резюме
Параметры многих функций WordPress, например параметры wp_set_object_terms, могут использовать строки, числа или даже массивы. Однако, по моему собственному опыту, в принципе, если вы можете использовать цифровые идентификаторы, старайтесь использовать цифровые идентификаторы, а если можете обойтись без массивов, не используйте массивы. Таким образом, некоторые проблемы часто уменьшаются.