Добавьте запрошенные переменные в запросе к вращающемуся хуку с помощью WordPress "wp_insert_post" - PullRequest
0 голосов
/ 06 апреля 2020

Мы можем добавить сообщение с функцией wp_insert_post($postarr);.

Здесь, если мы добавим несколько данных в переменную "$postarr" в дополнение к информации, которая нужна WordPress (как показано ниже) .

  $postarr = array(
    'post_title'    => 'Hello World',
    'post_content'  => '...',
    'post_status'   => 'publish',
    'post_author'   => 1,
    'post_type'     => 'post',
    'dummy_field'   => 'Dummy Text!'
  );

  wp_insert_post($postarr);

Если вы используете хук непосредственно перед созданием контента, add_action('wp_insert_post_data', 'my_function' 10, 2); возвращает нужные вам данные.

add_action('wp_insert_post_data', 'my_function', 10, 2);

funcion my_function($data, $postarr)
{
  die($postarr->dummy_field); // 'Dummy Text!'
}

Но после добавления поста мы используем хук add_action('wp_insert_post', 'my_function', 10, 3); не содержит «фиктивных» данных, которые нам нужны.

add_action('wp_insert_post', 'my_function', 10, 3);

funcion my_function($post_ID, $post, $update)
{
  add_post_meta($post_ID, 'dummy_field', $post->dummy_field, true);

  die($post->dummy_field); // "undefined"
}

Фактически, мы можем решить это следующим образом:

  $postarr = array(
    'post_title'    => 'Hello World',
    'post_content'  => '...',
    'post_status'   => 'publish',
    'post_author'   => 1,
    'post_type'     => 'post',
    'dummy_field'   => 'Dummy Text!'
  );

  $id = wp_insert_post($postarr);

  is_int($id) ? add_post_meta($id, 'dummy_field', $postarr->dummy_field, true) : "";

Однако, как видно из Например, это локальное решение, и следующая ситуация не будет работать, например, при добавлении контента через REST API или из панели ADMIN.

Моя цель состоит в том, чтобы при запросе POST через REST API и При добавлении нового сообщения некоторые личные данные, которые мы отправляем внутри данных, становятся доступными для загрузки с использованием идентификатора того же контента, встроенного в механизм WordPress.

Надеюсь, это имеет абсолютное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...