Хук функций add_post_meta ACF Post Object - PullRequest
0 голосов
/ 18 мая 2018

У меня есть функция в functions.php:

function create_whiteboard( $form_id, $post_id, $form_settings ) {
$current_user = wp_get_current_user();
$post_id = wp_insert_post(array (
'post_type' => 'whiteboard',
'post_title' => 'Whiteboard for ' . $current_user->user_firstname . ' ' . $current_user->user_lastname,
'post_status' => 'publish',
));
add_post_meta($post_id, 'project_select', $post_id, true);
}
add_action('create_whiteboard_hook', 'create_whiteboard', 10, 3 );

Это работает тем, что создает сообщение в типе сообщения на доске, но не обновляет поле моего объекта сообщения (выбор_проекта).Если я укажу идентификатор:

add_post_meta($post_id, 'project_select', '1', true);

Тогда это сработает - у меня вопрос, как передать в это сообщение только что созданный пост?

1 Ответ

0 голосов
/ 18 мая 2018

$post_id перезаписывается путем присвоения возвращаемого значения из wp_insert_post.

Как и раньше, созданная запись на доске - это метаданные, а не предполагаемая запись.

Это можно исправить, используя другое имя для переменной, ссылающейся на возвращаемое значение из вызова wp_insert_part.

function create_whiteboard( $form_id, $post_id, $form_settings ) {
  $current_user = wp_get_current_user();
  $whiteboard_post_id = wp_insert_post(array (
    'post_type' => 'whiteboard',
    'post_title' => "Whiteboard for {$current_user->user_firstname} {$current_user->user_lastname",
    'post_status' => 'publish',
  ));

  add_post_meta($post_id, 'project_select', $whiteboard_post_id, true);
}
...