全部, 以下代码为Wordpress中的帖子添加了类别:
$bmt_post = array(
'post_title' => wp_strip_all_tags( $title ),
'post_content' => wp_strip_all_tags( $information ),
'post_status' => 'publish',
'post_category' => array( 2,3 )
);
$post_id = wp_insert_post( $bmt_post );
我正在尝试从PHP前端网页创建新帖子时分配帖子类别。我在表格上有以下内容:
echo '<input type="checkbox" name="category_name[]" value="'.$category->term_id.'"> '.$category->name.'<br>';
然后我尝试像这样处理它:
if($_POST['category_name'] != ''){
$cat_ids = '';
foreach($_POST['category_name'] as $cat_name){
$cat_ids .= $cat_name.',';
}
$cat_ids = rtrim($cat_ids, ",");
echo 'The ids are: '.$cat_ids;
}else{
$cat_ids = 0;
}
当我回显$cat_ids
变量时,我有2,3,所以它应该可以工作但是在这个例子中它只将第一个类别id添加到帖子而不是两者。我怎样才能正常工作?
答案 0 :(得分:1)
您需要使用逗号分隔的ID创建数组而不是字符串:
foreach($_POST['category_name'] as $cat_name){
if ( is_int( $cat_name ) ) {
$cat_ids[] = $cat_name;
}
}
var_dump( $cat_ids );
原因:将字符串转换为int只返回第一个值:http://codepad.org/y76D3krI