Salvando duas categorias de dois menus suspensos no formulário de postagem da frente

Então, aqui está o acordo:

Eu tenho duas categorias de categorias, a primeira para as categorias pai e a segunda para as categorias filho. Eles formam uma corrente para que quando você selecionar a categoria pai, o segundo menu suspenso será preenchido com suas categorias filho. Aqui está o código no próprio formulário:

 $(function() { $('#main_cat').change(function() { var $mainCat=$('#main_cat').val(); // call ajax $("#sub_cat").empty(); $.ajax ( { url:"/wp-admin/admin-ajax.php", type:'POST', data:'action=my_special_ajax_call&main_catid=' + $mainCat, success:function(results) { // alert(results); $("#sub_cat").removeAttr("disabled"); $("#sub_cat").append(results); } } ); }); });  

Aqui está o código em functions.php:

 function implement_ajax() { if(isset($_POST['main_catid'])) { $categories= get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0'.'&taxonomy=category'.'&show_count=0'); foreach ($categories as $cat) { $option .= 'term_id.'">'; $option .= $cat->cat_name; $option .= ' ('.$cat->category_count.')'; $option .= ''; } echo 'Sub Categories'.$option; die(); } // end if } add_action('wp_ajax_my_special_ajax_call', 'implement_ajax'); add_action('wp_ajax_nopriv_my_special_ajax_call', 'implement_ajax'); 

O problema é que ao salvar os valores como este:

 'post_category' => array($_POST['main_cat']), 

Eu só obtendo a categoria pai salva para a postagem. Como na Terra posso ter o pai E as categorias de criança, ambas guardadas? Tenha em mente que apenas uma categoria deve ser selecionada de cada lista suspensa, sem múltiplos.

Felicidades!

ACTUALIZADO COM TODO O POSTE DE POSTE / CÓDIGO DE SAIBA ABAIXO:

 is_valid) { if (isset ($_POST['title'])) { $title = $_POST['title']; $_SESSION['form_values']['title'] = $_POST['title']; } if (isset ($_POST['site-link'])) { $siteurl = $_POST['site-link']; $_SESSION['form_values']['site-link'] = $_POST['site-link']; } if (isset ($_POST['first-url'])) { $firsturl = $_POST['first-url']; $_SESSION['form_values']['first-url'] = $_POST['first-url']; } if (isset ($_POST['price'])) { $price = $_POST['price']; $_SESSION['form_values']['price'] = $_POST['price']; } if (isset ($_POST['name'])) { $devname = $_POST['name']; $_SESSION['form_values']['name'] = $_POST['name']; } if (isset ($_POST['second-url'])) { $secondurl = $_POST['second-url']; $_SESSION['form_values']['second-url'] = $_POST['second-url']; } if (isset ($_POST['country'])) { $devcountry = $_POST['country']; $_SESSION['form_values']['country'] = $_POST['country']; } if ($_POST['twitter']=="Twitter Username" || $_POST['twitter']=="Not Available") { $twitter = "Not Available"; $_SESSION['form_values']['twitter'] = $twitter; }else { $twitter = $_POST['twitter']; $_SESSION['form_values']['twitter'] = $_POST['twitter']; } $design = $_POST['design']; if ($design=="yes"){$design = "Yes, this is new!";} else {$design="No, this is old!";} $related = $_POST['related']; if ($related=="yes"){$related = "Yes, this is related!";} else {$related="No, this is not related!";} $responds = $_POST['responds']; if ($responds=="yes"){$responds = "Yes";} else {$responds="No";} $locale = $_POST['locale']; if ($locale=="yes"){$locale = "Yes";} else {$locale="No";} $widgets = $_POST['widgets']; if ($widgets=="yes"){$widgets = "Yes";} else {$widgets="No";} $skins = $_POST['skins']; if ($skins=="yes"){$skins = "Yes";} else {$skins="No";} $contact = $_POST['contact']; if ($contact=="yes"){$contact = "Yes";} else {$contact="No";} $press = $_POST['press']; if ($press=="yes"){$press = "Yes";} else {$press="No";} $comm = $_POST['comm']; if ($comm=="yes"){$comm = "Yes";} else {$comm="No";} $page = $_POST['page']; if ($page=="yes"){$page = "Yes";} else {$page="No";} $psd = $_POST['psd']; if ($psd=="yes"){$psd = "Yes";} else {$psd="No";} $format = $_POST['format']; if ($format=="yes"){$format = "Yes";} else {$format="No";} $codes = $_POST['codes']; if ($codes=="yes"){$codes = "Yes";} else {$codes="No";} if ($_FILES['image']['error']==0) { // ADD THE FORM INPUT TO $new_post ARRAY $new_post = array( 'post_title' => $title, 'post_category' => array($_POST['main_cat']), 'post_status' => 'draft', 'post_type' => 'post' ); $pid = wp_insert_post($new_post); add_post_meta($pid, 'URL', $siteurl, true); add_post_meta($pid, 'Name', $name, true); add_post_meta($pid, 'First URL', $firsturl, true); add_post_meta($pid, 'Country', $country, true); add_post_meta($pid, 'Twitter', $twitter, true); add_post_meta($pid, 'Redesign', $redesign, true); add_post_meta($pid, 'Related', $related, true); add_post_meta($pid, 'Responds', $responds, true); add_post_meta($pid, 'Locale', $locale, true); add_post_meta($pid, 'Widgets', $widgets, true); add_post_meta($pid, 'Skins', $skins, true); add_post_meta($pid, 'Contact', $contact, true); add_post_meta($pid, 'Press', $press, true); add_post_meta($pid, 'Comm', $comm, true); add_post_meta($pid, 'Page', $page, true); add_post_meta($pid, 'PSD', $psd, true); add_post_meta($pid, 'Format', $format, true); add_post_meta($pid, 'Second URL', $secondurl, true); add_post_meta($pid, 'Price', $price, true); add_post_meta($pid, 'Codes', $codes, true); wp_set_post_categories($post_id, $_POST['main_cat']); wp_set_post_tags($post_id, $_POST['post_tags']); foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$pid); } $imagedata = simplexml_load_string(get_the_post_thumbnail($pid)); $post_img = $imagedata->attributes()->src; include_once("script/colors.inc.php"); $image = $post_img; $ex=new GetMostCommonColors(); $ex->image = $image; $colors=$ex->Get_Color(); $how_many=10; $colors_key=array_keys($colors); $colortag = $colors_key[1]; for ($i = 2; $i  

Solutions Collecting From Web of "Salvando duas categorias de dois menus suspensos no formulário de postagem da frente"

Para corrigir isso, você precisará passar em vários termos ao invés de um único termo

então em vez de:

 $_POST['main_cat'] 

Usar:

 array($_POST['main_cat'],$_POST['sub_cat']) 

Você não precisaria salvar o main_cat. Atribuir sub_cat deve implicar que também está no termo pai subcat