我对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 );
?>
答案 0 :(得分:0)
对于任何人的想法,我都可以通过添加此代码来实现function.php文件
nc+1
以上代码将从前端表单的选择字段添加自定义分类标记。