Задать вопрос
maxnik_31978
@maxnik_31978
Wordpress-разработчик

Как заполнить ACF-поле поста данными из ACF-поля рубрики этого поста?

Есть 2 группы полей ACF: 1-я для рубрик, 2-я для записей.
В 1-й группе есть поле "Фоновое изображение" (тип поля - Изображение, возвращаемый формат - Ссылка на изображение)
Во 2-й группе есть поле "Фоновое изображение рубрики публикации" (тип поля - Изображение, возвращаемый формат - Ссылка на изображение)

Как сделать так, чтобы при публикации (обновлении) поста поле "Фоновое изображение рубрики публикации" заполнялось данными из поля "Фоновое изображение" рубрики этого поста?

Делаю так, но не работает.
add_action( 'acf/save_post', 'update_category_background_image');

function update_category_background_image( $post_id ) {

	global $post;
	
	// Получаем ID текущего поста
	$post_id = $post->ID;

	// Получаем значение фон рубрики из рубрик
	$post_category = get_the_category($post_id);
	$category_term_id = $post_category[0]->term_id;
	$category_background_image = get_field( 'category_background_image', 'category_' . $category_term_id );

	// Обновляем значение фон рубрики поста
	update_post_meta( $post_id, 'post_category_background_image', $category_background_image );
}
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
maxnik_31978
@maxnik_31978 Автор вопроса
Wordpress-разработчик
Разобрался. Может кому будет интересно. Вот решение:
Данные код поместить в function.php
add_action('acf/save_post', 'my_acf_save_post');
function my_acf_save_post() {

	// Получаем ID рубрики
	$post_category = get_the_category();
	$category_term_id = $post_category[0]->term_id;

	// Получаем значение ACF-поля фона рубрики
	$category_background_image = get_field( 'category_background_image', 'category_' . $category_term_id, false );
	
        // Получаем ключ поля
	$field_image = acf_get_field( 'post_category_background_image' );
	$field_key_image = $field_image['key'];
        
        // Обновляем значение поля
	update_field( $field_key_image, $category_background_image );
	
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы