私はこの件に関して多くの記事を読んできましたが、私がしなければならないことに頭を包むようには思えません。
私は、ユーザーが最初からカスタム投稿タイプに投稿を送信できるフォームを持っています。私が作成したカスタム分類法からユーザーが選択できるドロップダウンメニューを組み込みたいです。フォーム送信時に選択した値を保存する必要があります。
フォーム:
<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');
}
私は何かが足りないのですか?任意の助けは大歓迎です!
$ jobcatsvalueを保存する場合は、保存時に整数の配列かどうかを確認してください。
// Format the taxonomies
if(is_array($_POST['jobcats'])){
foreach($_POST['jobcats'] as $j){
$jobcatvalue[] = intval($j);
}
} else {
$jobcatvalue = array(intval($_POST['jobcats']));
}