web-dev-qa-db-ja.com

フロントエンドの投稿投稿からカスタム分類を保存する方法

私はこの件に関して多くの記事を読んできましたが、私がしなければならないことに頭を包むようには思えません。

私は、ユーザーが最初からカスタム投稿タイプに投稿を送信できるフォームを持っています。私が作成したカスタム分類法からユーザーが選択できるドロップダウンメニューを組み込みたいです。フォーム送信時に選択した値を保存する必要があります。

フォーム:

 <fieldset class="jobcategorydropdown">
        <label for="jobcatdd"> Job Category </label>
        <?php wp_dropdown_categories( 'taxonomy=jobcats&hide_empty=0&name=ddjobcats' ); ?> 
</fieldset>

分類法を登録します。

register_taxonomy('jobcats', 'job_listing', array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'topic' ),

;);

新しい投稿をします。

function make_job_post() {

$type = 'job_listing';

$jobcatvalue = $_POST['jobcats'];


$post_information = array(
'post_title' => wp_strip_all_tags( $_POST['postTitle'] ),
'post_content' => $_POST['postContent'],
'post_type' => $type,
'post_status' => 'publish',
'tax_input' => array($jobcatvalue)
);

$pid = wp_insert_post($post_information);


wp_set_object_terms($pid, $jobcatvalue,'jobcats');


}

私は何かが足りないのですか?任意の助けは大歓迎です!

1
Maeve Power

$ jobcatsvalueを保存する場合は、保存時に整数の配列かどうかを確認してください。

    // Format the taxonomies
    if(is_array($_POST['jobcats'])){
        foreach($_POST['jobcats'] as $j){
            $jobcatvalue[] = intval($j);
        }
    } else {
        $jobcatvalue = array(intval($_POST['jobcats']));
    }
1