2011-07-21 8 views
0

私はワードプレスでカテゴリーIDを表す3つの配列を持っていて、すべてフォーマットは$base_cat_id['term_id']です。PHPで配列を追加する

wp_set_post_categories($entry['post_id'], $base_cat_id + $generic_n_cat_id + $specific_n_cat_id); 

しかし、私はこれを行う際にポストが最初の2つのカテゴリーに割り当てられている:私は何をしたい、次の機能を使用して、これらのカテゴリの3にポストを割り当てています。これらの配列を一緒に追加する正しい方法を使用していますか?

編集:

私は、これは次のようにして動作するようになった:

$cat_ids = array($base_cat_id['term_id'], $generic_a_cat_id['term_id'], $specific_a_cat_id['term_id']); 
wp_set_post_categories($entry['post_id'], $cat_ids); 

それはかなりありません。しかし、同じ文字列IDを持つarray_mergeを使用すると、値が上書きされるため、機能しないことがわかりました。私は2つの配列のためのユニオンを使用することができるので、ユニオンはどちらも動作しません。より良い方法があれば教えてください!

+1

注意をunion](http://www.php.net/manual/en/language.operators.array.php)を参照してください。したがって、私はあなたの問題が配列形式にあると信じています。 –

答えて

4

関数array_merge()を使用します。その引数は、マージしている配列と同じ数の配列であり、それらは1つの配列にマージされた配列を返すので、配列を返します。このような

wp_set_post_categories($entry['post_id'], array_merge($base_cat_id, $generic_n_cat_id, $specific_n_cat_id)); 

警告:あなたのあなたの配列がマルチレベルであれば、あなたは奇妙な結果を得る可能性があります。詳細情報については、チェックアウト:http://php.net/manual/en/function.array-merge.php

+0

+1私を同じ答えに打ちのめす私はまた、ドキュメントへのリンクを追加しました。 –

+0

私はちょうどこれを試み、投稿は最後のカテゴリにのみ割り当てられました。 array_mergeが3つのカテゴリをまとめて管理していないようです。 – Casey

+0

私はこれをうまく動作させるために次のようにしました: – Casey

0

を私はあなたの配列、他のもの「term_id」に何があるかはかなりわからないんだけど、この使用してみてください: `+`配列演算子が[実行しないことを

wp_set_post_categories($entry['post_id'], array_merge($base_cat_id, $generic_n_cat_id, $specific_n_cat_id)); 
+0

すべての変数に "term_id"があります。 – Casey

関連する問題