Wordpress / ACF объединяет несколько полей в одно значение - PullRequest
0 голосов
/ 14 ноября 2018

Есть ли способ получить значения из нескольких полей (например: «value_1» , «value_2» и т. Д.) И объединить их все в новое поле, скажем «merged_values» после публикации / редактирования поста?

Примерно так:

Если:

value_1 = red blue; value_2 = gold silver;

Тогда:

merged_values = red blue gold silver;

Мне нужно добиться этого из-за поискового плагина, который не показывает результаты, если поисковый запрос «красное серебро» и в нем нет возможности объединить поиск в нескольких Поля ACF.

(точнее, мне нужно, чтобы поле «merged_values» было записано в БД, как в примере выше, а не просто выводить значения вместе во внешнем интерфейсе).

Выходными данными из полей по умолчанию является чистый текст с пробелами, а "merged_values" также должен быть просто чистым текстом (без массивов и т. Д.)

1 Ответ

0 голосов
/ 14 ноября 2018

Я думаю, вы хотите что-то вроде этого

// This function runs after your post is saved
function my_acf_save_post( $post_id ) {

    // Get new value of field 1
    $value1 = get_field( 'field1', $post_id );

    // Get new value of field 2 
    $value2 = get_field( 'field2', $post_id );

    // Merged values with ; on the end
    $merge = implode(" ",$value1).' '.implode(" ",$value2);

    // Update field 3 with the new value which should be
    // value1 value2;
    update_field( 'field3', $merge, $post_id );
}
add_action('acf/save_post', 'my_acf_save_post', 20);

Я не уверен, хотите ли вы поместить объединенное значение в другое поле ACF.Если нет, вы можете использовать $ wpdb, чтобы вставить его в базу данных вручную.

...