2011-07-26 8 views
0

どこでも探していますが、どこでも答えが見つからず、初心者です。私を助けるような親切な人がいることを願っています。 私はワードプレスで働いていると私は、カテゴリ内のすべての投稿を取得するには、このライン特定のキーと同じ値を持つ重複したオブジェクトを削除します(ワードプレス:同じタイトルの投稿を検索しません)

$post_IDs = get_posts('category_name=glicinie'); 

を使用していますが、このカテゴリでは、私は重複の記事の多くを持って、ここで私が取得配列の一部は、[ですしますprint_r($ post_IDs)]この後

Array ( 
[0] => stdClass Object 
([ID] => 761 [post_author] => 2 [post_date] => 2011-07-26 12:07:17 
[post_title] => Flower) 
[1] => stdClass Object 
([ID] => 760 [post_author] => 2 [post_date] => 2011-07-26 12:04:46 
[post_title] => Rainbow) 
[2] => stdClass Object 
([ID] => 770 [post_author] => 2 [post_date] => 2011-07-26 12:03:18 
[post_title] => Coconut) 
[3] => stdClass Object 
([ID] => 743 [post_author] => 5 [post_date] => 2011-07-26 11:38:48 
[post_title] => Coconut) 
) 

と私は各ポストのタイトルと年(それはポストのカスタムフィールドである)を持つフォームでの選択を移入するには、以下のコードを使用しています。今、あなたは、私が「ココナッツ」と題した2つのポストを持って、その前に見てきた

foreach ($post_IDs as $post_ID) { 
$anno = get_post_meta($post_ID->ID, 'year', true); 
$title = $post_ID->post_title; 
echo '<option value="'.$title.'">' . '[' . $year . '] ' . $title . '</option>'; 
} 

..形式のリストに私はポストココナッツが2回表示していますので。 私が望むのは、重複した投稿(「ココナッツ」のような)を一度だけ表示することです。 私はforeachの前に配列のチェックをしなければならないと思いますが、 foreach私は、異なる "post_title"値を持つIDを介してのみループします。しかし、どのように?

forgive my english。 ありがとうございます。

答えて

0

私はこれを行うべきだと思います。

$got = array(); 
foreach($post_IDs as $i => $d) 
{ 
    if(!in_array($d[post_title]),$got) 
    { 
     $got[] = $d[post_title]; 
     $out[] = $d; 
    } 
} 
print_r($out); 
関連する問題