Категории из front-end, выбор флажка не работают

Я использую плагин Post с сайта , который создает WP front end writer. Я изменил некоторые строки кода, потому что мне нужно выбирать категории с флажками, а не с множественным выбором (как это было первоначально в плагине). К сожалению, это не работает: теперь есть флажок в интерфейсе, но флажки ничего не делают: почта сохраняется без категорий.

Вот код, который обрабатывает выбор таксономии:

public function get_taxonomy_list( $taxonomy ){ $terms = get_terms($taxonomy, array( 'hide_empty' => 0 )); if (!$terms || empty($terms)) return ''; //preg_match_all('/\s*<input class="(\S*)" value="(\S*)" type="checkbox">(.*)<\/input>\s*/', $terms, $matches, PREG_SET_ORDER); $out = apply_filters( 'pfs_taxonomy_label', "<label for='terms_$taxonomy'>Seleziona i corsi</label>", $taxonomy ); foreach ($terms as $term){ if (is_taxonomy_hierarchical($taxonomy)) $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='{$term->term_taxonomy_id}' /> {$term->name}<br />"; else $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='{$term->name}' /> {$term->name}"; } $out .= "<br />\n"; return apply_filters("pfs_{$taxonomy}_list",$out); } 

и вот код, который сохраняет сообщение и таксономию (что я не изменил):

 $postarr['tax_input'] = (array_key_exists('terms',$pfs_data)) ? $pfs_data['terms'] : array(); $post_id = wp_insert_post($postarr); 

Solutions Collecting From Web of "Категории из front-end, выбор флажка не работают"

Вы изменили значение атрибута имени флажка. Вы должны использовать одно и то же имя: термины [$ taxonomy] []

Это должно исправить код:

 if (is_taxonomy_hierarchical($taxonomy)) //$out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='{$term->term_taxonomy_id}' /> {$term->name}<br />"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='terms[{$taxonomy}][]' /> {$term->name}<br />"; else // $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='{$term->name}' /> {$term->name}"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='terms[{$taxonomy}][]' /> {$term->name}"; } , if (is_taxonomy_hierarchical($taxonomy)) //$out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='{$term->term_taxonomy_id}' /> {$term->name}<br />"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='terms[{$taxonomy}][]' /> {$term->name}<br />"; else // $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='{$term->name}' /> {$term->name}"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='terms[{$taxonomy}][]' /> {$term->name}"; } , if (is_taxonomy_hierarchical($taxonomy)) //$out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='{$term->term_taxonomy_id}' /> {$term->name}<br />"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->term_taxonomy_id}' name='terms[{$taxonomy}][]' /> {$term->name}<br />"; else // $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='{$term->name}' /> {$term->name}"; $out .= "<input class='{$term->term_taxonomy_id}' type='checkbox' value='{$term->name}' name='terms[{$taxonomy}][]' /> {$term->name}"; } 

Обычно я использую http://codex.wordpress.org/Function_Reference/wp_set_post_terms

при создании таксономий при создании почты.

 $post_id = wp_insert_post(); if($post_id){ wp_set_post_terms($post_id, $postarr['tax_input'], 'category' ); }