2014-10-30 70 views
0

所有, 下面的代碼添加類別後在WordPress:分配多個類別ID來後

$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

您需要創建的,而不是用逗號分隔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

+0

這是答案的一部分。我也必須更新這個''post_category'=>數組(2,3)'到''post_category'=> $ cat_ids'然後它就工作了。當然是 – user1048676 2014-10-30 20:12:21

+0

。我認爲這是理所當然的。 – wedi 2014-10-30 20:15:09