我在前端有一个联系人表单7,每次填写后都会创建一个新的自定义帖子。一切正常,但我不知道如何设置这篇文章的语言(目前它保存在英语中,因为它是我在WPML中的默认语言)。
以下是我尝试过的:
function save_form_to_post( $posted_data ) {
$args = array(
\'post_type\' => \'projects\',
\'post_status\'=> \'draft\',
\'post_title\'=> wp_strip_all_tags( $posted_data[\'title\'] ),
\'post_content\'=> wp_strip_all_tags( $posted_data[\'pitch\'] ),
);
$post_id = wp_insert_post($args);
if( $posted_data[\'language\'] == \'Spanish\' || $posted_data[\'language\'] == \'German\' || $posted_data[\'language\'] == \'French\' ) {
if( $posted_data[\'language\'] == \'Spanish\' ) {
$set_language_args = array(
\'element_id\' => $post_id,
\'element_type\' => \'projects\',
\'language_code\' => \'es\'
);
$cat_ID = 729;
} elseif( $posted_data[\'language\'] == \'German\' ) {
$set_language_args = array(
\'element_id\' => $post_id,
\'element_type\' => \'projects\',
\'language_code\' => \'de\'
);
$cat_id = 726;
} elseif( $posted_data[\'language\'] == \'French\' ) {
$set_language_args = array(
\'element_id\' => $post_id,
\'element_type\' => \'projects\',
\'language_code\' => \'fr\'
);
$cat_id = 725;
}
do_action( \'wpml_set_element_language_details\', $set_language_args );
} else {
$cat_id = 723;
}
wp_set_object_terms( $post_id, $cat_id, \'project_category\' );
return $posted_data;
}
add_filter( \'wpcf7_posted_data\', \'sep_save_screenplay_form\' );
因此,根据前端表单上选择字段的值设置语言。然后我试着用
wpml_set_element_language_details
钩子定义帖子的语言(每个帖子都没有翻译)。最后,我为这篇文章设置了分类法。
现在,这篇文章只保存英语,而不保存其他语言。有人能给我解释一下为什么它不起作用以及如何使它起作用吗?
非常感谢。