Расширенные пользовательские поля и внешний интерфейс - PullRequest
0 голосов
/ 29 мая 2018

Я создал форму внешнего интерфейса, которая создает новый пользовательский тип записи.Есть ли способ обновить метаданные ACF из этой формы?

<?php if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] )) {


    // Add the content of the form to $post as an array
    $post = array(
        'post_title'    => $description,
        'post_content'  => $description,
        'post_category' => 3,  // Usable for custom taxonomies too
        'post_status'   => 'private',           // Choose: publish, preview, future, etc.
        'post_type' => 'door', // Use a custom post type if you want to
        'post_parent' => $post->ID,
        'post_name' => 'service',
        'meta_key'      => 'archive_job',
        'meta_value'    => 'red',
    );
    wp_set_object_terms($pid, $_POST['terms'], 'child');
    wp_insert_post($post);  // Pass  the value of $post to WordPress the insert function
    global $wp;
    $current_url = home_url(add_query_arg(array(),$wp->request));
    wp_redirect( $current_url );

                    // http://codex.wordpress.org/Function_Reference/wp_insert_pos
} // end IF

// Do the wp_insert_post action to insert it
do_action('wp_insert_post', 'wp_insert_post', 'add_post_meta' , 'update_post_meta'); 

?>

1 Ответ

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

метафайлы ACF сохраняются в базе данных как базовое настраиваемое поле .Так что вы можете использовать, например, функцию add_post_meta () со значениями add_post_meta ($ post_id, 'field_name', $ field_value);после wp_insert_post ($ post);функция.

пример кода:

    $post = array(
        'post_title'    => $description,
        'post_content'  => $description,
        'post_category' => 3,  // Usable for custom taxonomies too
        'post_status'   => 'private',           // Choose: publish, preview, future, etc.
        'post_type' => 'door', // Use a custom post type if you want to
        'post_parent' => $post->ID,
        'post_name' => 'service',
        'meta_key'      => 'archive_job',
        'meta_value'    => 'red',
    );
    wp_set_object_terms($pid, $_POST['terms'], 'child');
    $post_id = wp_insert_post($post);  // Pass  the value of $post to WordPress the insert function
    add_post_meta($post_id, 'field_name', $field_value);
    global $wp;
    $current_url = home_url(add_query_arg(array(),$wp->request));
    wp_redirect( $current_url );
...