带有自定义帖子类型和自定义分类标签的ACF前端表单

时间:2018-01-14 19:45:29

标签: php advanced-custom-fields

我对PHP不是很有经验,所以这可能是一个容易提出的问题,但我似乎无法找到问题的答案。

我有自定义帖子类型(使用CPT UI创建),food_type和自定义分类(类别),带有标签的meal_cat可供选择,如早餐,午餐,晚餐等.food_type有标题,描述和媒体字段(ACF字段)。当需要创建新的food_type时,它必须具有标题,描述和媒体。还要求从列表中选择meal_cat。

我需要一个前端表单,可以按照以下方式使用我的自定义帖子类型和自定义分类: 1-在前端上传表单中,我需要加载meal_cat供用户选择(例如在下拉列表中) 2-表单还应包括标题和说明区域以及上传按钮 3-当选择文件并按下按钮时,应创建一个新的food_type帖子(使用所选的meal_cat和给定的标题和描述),并将上传的媒体附加到这个新帖子(food_type)。

我可以创建food_type,title和description但无法获得meal_cat。

有一个插件能够完成我想要的(前端上传器)

但我想在没有插件的情况下编写代码并创建它。

我的Function.php代码

    /**
      * Create new post via ACF frontend
    */

    function my_pre_save_post( $post_id )
    {

        $custom_tax = array(
        'color' => array(
                'breakfast',
                'lunch',
                'dinner'
            )
        );

        // Create a new post
        $post = array(
            'post_status'  => 'publish',
            'post_title'  => $_POST['fields']['field_5a58f487fbc67'],
            'post_content'  => $_POST['fields']['field_5a58f49bfbc69'],
            'post_type'  => 'food',
            'tax_input'  => array( 'meal' => array(2,3,4)), //taxonomies
        ); 

        // insert the post
        $post_id = wp_insert_post($post);   

    // save a Form Date value
    $field_key = "field_5a58f491fbc68";
    $value = $_POST['fields']['field_5a58f491fbc68'];
    update_field( $field_key, $value, $post_id );

    // save a Select value
    $field_key = "field_5a59ced6c6c4a";
    $value = array("breakfast", "lunch", "dinner");
    update_field( $field_key, $value, $post_id );

    // save a Form Author value
    $field_key = "field_5a58f6601d48b";
    $value = $_POST['fields']['field_5a58f6601d48b'];
    update_field( $field_key, $value, $post_id );

        wp_redirect(get_permalink($post_id)); exit;

        // return the new ID
        return $post_id;
    }

    add_filter('acf/pre_save_post' , 'my_pre_save_post' );

前端表单代码:

         <?php

            $args = array(
                'post_id' => 'new',
                'field_groups' => array(4),
                'submit_value' => 'Publish Post',
            );

            acf_form( $args );

        ?>

1 个答案:

答案 0 :(得分:0)

对于任何人的想法,我都可以通过添加此代码来实现function.php文件

nc+1

以上代码将从前端表单的选择字段添加自定义分类标记。