2016-07-23 3 views
1

ユーザーがフロントエンドから投稿できるようにするフォームを作成します。 私はカスタムポストタイプとカスタム分類を使用するため、wp_set_object_termsでタクソノミを渡すようにしています。 これは私のコードです:wp_set_object_termsがカスタム分類法とcptで動作しない

とその動作しない!!!!!

+0

あなたは使用しているエラーを確認しましたか? '$ term_taxonomy_ids = wp_set_object_terms(42、$ cat_ids 'カテゴリー');' ' 場合(is_wp_error($ term_taxonomy_ids)){' \tは '//エラーがどこかにありましたし、条件を設定することができませんでした。 ' '} else {' \t' //成功!投稿のカテゴリが設定されました。 ' '}' –

+0

こんにちは、「無効な分類」エラーが表示されます。 – Pushtook

+0

は解決策を見つけた! 私は関数内でコードを囲み、それをinitに追加するためにidを行う必要がありました。 – Pushtook

答えて

1

だから、ついにそれを解決しました。関数にフォームをラップして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); 
    ?> 
関連する問題