Вызов функции в Wordpress после обновления / создания настраиваемого типа сообщения с помощью ACF - PullRequest
1 голос
/ 19 июня 2020

Я хочу вызывать функцию каждый раз, когда изменяется пользовательский тип сообщения. Либо опубликовать sh, обновить или удалить. В этой функции я извлекаю все сообщения из этого настраиваемого типа сообщения и создаю файл json, который я экспортирую в файл.

add_action( 'transition_post_status', 'get_resources_data', 10, 3 );

function get_resources_data($new_status, $old_status, $post ) {
  if ($post->post_type == 'resources') {
    $args = array (
        'post_type' => 'resources',
        'post_status' => 'publish',
        'posts_per_page' => -1
    );
    $queryResults = new WP_Query( $args );
    if ( $queryResults->have_posts() ) {
        //do my stuff here
        //fetch acf fields with get_field()
        //create json file
        //export json file
    }
  }
}

Проблема в том, что настраиваемый тип сообщения имеет несколько дополнительных настраиваемых полей который я включаю в файл JSON. Однако при создании нового сообщения все ACF имеют нулевое значение, а такие поля, как заголовок и данные о создании, доступны. Если я обновляю сообщение, извлекаются все ACF.

У меня сложилось впечатление, что transition_post_status подключается до того, как ACF сохраняются в базе данных. Использовать другое действие или сделать это другим способом?

1 Ответ

2 голосов
/ 19 июня 2020

ACF на самом деле предоставляет вам крючок действия именно для этого.

add_action('acf/save_post', 'get_resources_data'); - если вы установите приоритет ниже 10, действие применяется до сохранения данных, если вы испускаете приоритет или его значение выше 10, оно применяется после сохранения данных.

Подробнее о крючке можно узнать здесь: https://www.advancedcustomfields.com/resources/acf-save_post/

...