为帖子分配多个类别ID

时间:2014-10-30 19:59:34

标签: php

全部, 以下代码为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添加到帖子而不是两者。我怎样才能正常工作?

1 个答案:

答案 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