Списки заданий создаются с использованием грозных форм. < /li>
Крюк FRM_AFTER_CREATE_ENTRY используется для назначения Условий после создания после посты. li> Если список редактируется на грузинском сайте (не на панели администратора) и сохраняется, грузинские термины также добавляются автоматически. Отфильтруйте термины.
Что я делаю? FRM_AFTER_CREATE_ENTRY Hook:
Код: Выделить всё
add_action('frm_after_create_entry', function ($entry_id, $form_id) {
if ($form_id != 18) { // Form ID
return;
}
$entry = FrmEntry::getOne($entry_id);
if (!$entry->post_id) {
return;
}
$post_id = $entry->post_id;
// Get current post terms
$current_terms = wp_get_post_terms($post_id, 'job_listing_category', ['fields' => 'ids']);
// Get translated term IDs
$translated_term_id_en = apply_filters('wpml_object_id', $current_terms[0], 'job_listing_category', false, 'en');
$translated_term_id_ge = apply_filters('wpml_object_id', $current_terms[0], 'job_listing_category', false, 'ka-ge');
// Set terms
$result = wp_set_object_terms($post_id, [$translated_term_id_en, $translated_term_id_ge], 'job_listing_category');
error_log(print_r([$translated_term_id_en, $translated_term_id_ge], true)); // Expected [322, 358]
error_log(print_r($result, true)); // Actually getting [322, 322]
}, 10, 2);
- Пост должен иметь оба термина:
- один на английском ().
Код: Выделить всё
translated_term_id_en - один на грузинском языке ().
Код: Выделить всё
translated_term_id_ge - wpml не должен переопределять термины при переключении языков.
фактический результат: - , $ translated_merm_id_ge = 358 .
Код: Выделить всё
$translated_term_id_en = 322 - После WP_Set_object_terms () , WPML заменяет второй термин. [322, 322] .
< ol>
Отключение фильтрации терминов WPML перед назначением Условий:
Код: Выделить всё
remove_filter('get_the_terms', 'wpml_get_object_terms_filter', 10);< /code>
wpml по -прежнему заменяет термины после переключения языков. Тот же процесс не работает программно. Правильно назначить несколько терминов на разных языках в пост в WordPress + WPML внутри FRM_AFTER_CREATE_ENTRY Подробнее здесь: https://stackoverflow.com/questions/794 ... press-wpml
Мобильная версия