1
ユーザーがフロントエンドから投稿できるようにするフォームを作成します。 私はカスタムポストタイプとカスタム分類を使用するため、wp_set_object_termsでタクソノミを渡すようにしています。 これは私のコードです:wp_set_object_termsがカスタム分類法とcptで動作しない
とその動作しない!!!!!
ユーザーがフロントエンドから投稿できるようにするフォームを作成します。 私はカスタムポストタイプとカスタム分類を使用するため、wp_set_object_termsでタクソノミを渡すようにしています。 これは私のコードです:wp_set_object_termsがカスタム分類法とcptで動作しない
とその動作しない!!!!!
だから、ついにそれを解決しました。関数にフォームをラップしてinitに追加するだけで済みます。 :
<? php
function job_offer_form_init() {
// form to post test
function job_offer_form() {
$user_id = get_current_user_id();
$job_field_1 = userpro_profile_data('main_occupation', $user_id);
$job_field_2 = userpro_profile_data('sub_occupation_01', $user_id);
$job_field_3 = userpro_profile_data('sub_occupation_02', $user_id);
$form ='<div class="form-container">
<form action="" method="post" role="form">
<legend>הצעת שירותים/מוצרים</legend>
<div class="form-group">
<label for="job_title">כותרת ההצעה</label></br>
<input type="text" class="form-control" name="job_title" placeholder=""></br>
<label for="post_content">תוכן ההצעה</label></br>
<textarea class="form-control" name="post_content" placeholder=""></textarea></br>
<label for="job_field">תחום ההצעה</label></br>
<select name="job_field" multiple>
<option value="'.$job_field_1.'" selected>'.$job_field_1.'</option>
<option value="'.$job_field_2.'">'.$job_field_2.'</option>
<option value="'.$job_field_3.'">'.$job_field_3.'</option>
</select></br>
<label for="post_points">עלות בנקודות</label></br>
<input type="number" class="form-control" name="post_points" placeholder=""></br>
</div>
<button type="submit" name="submit_offer" value="submit" class="btn btn-primary">הגשת הצעה</button>
</form></div>' ;
return $form;
}
add_shortcode('jobofferform', 'job_offer_form');
if(isset ($_POST['submit_offer'])=='submit'){
$user_id = get_current_user_id();
$args=array(
'post_author' => $user_id,
'post_title' => $_POST['job_title'],
'post_content' => $_POST['post_content'],
'post_excerpt' => $_POST['job_field'],
/* 'tax_input' => array(
'field_of_work' => array(44, 45),
), */
'meta_input' => array(
'points_amount' => $_POST['post_points'],
// 'job_field' => $_POST['job_field'],
),
'post_status' => 'publish',
'post_type' => 'job_offers',
);
// get post id
$post_id = wp_insert_post($args);
$job_tax = array (48 , 49);
$term_taxonomy_ids=wp_set_object_terms($post_id , $job_tax, 'field-of-work' , true);
if (is_wp_error($term_taxonomy_ids)) {
$error_string= $term_taxonomy_ids -> get_error_message();
add_post_meta($post_id, 'taxonomies-error', $error_string);
} else {
add_post_meta($post_id, 'taxonomies-error', 'no error');
}
}
}
add_action('init', 'job_offer_form_init', 0);
?>
あなたは使用しているエラーを確認しましたか? '$ term_taxonomy_ids = wp_set_object_terms(42、$ cat_ids 'カテゴリー');' ' 場合(is_wp_error($ term_taxonomy_ids)){' \tは '//エラーがどこかにありましたし、条件を設定することができませんでした。 ' '} else {' \t' //成功!投稿のカテゴリが設定されました。 ' '}' –
こんにちは、「無効な分類」エラーが表示されます。 – Pushtook
は解決策を見つけた! 私は関数内でコードを囲み、それをinitに追加するためにidを行う必要がありました。 – Pushtook