2012-01-16 9 views
0

私は以下のコードを持っています。 $ relatedはdbクエリの配列結果であり、データを含んでいます。ULグループとLIのPHP Foreach

照会されたデータは、異なるグループ(post_type)に属する投稿で構成されます。私は彼らのpost_type内のクエリオブジェクトをグループ化したい。下のコードは動作しますが、私が望むのは、各post_typeに対して異なるULを作成することです。下にあるように、クエリで見つかった投稿のUL要素があります。だから、ULはforeachの外にいなければなりませんが、もう一方では、foreachのpost_typeをどうすれば得ることができますか? Iビットがここに失われています:(

$related = p2p_type('accommmodation-to-places')->get_connected(get_queried_object_id()); 
foreach($related->posts as $post) { 
    echo '<ul class="related-'.$post->post_type.'">'; // this shouldn't be here 
    if($post->post_type == 'hotels') { 
     echo '<li><a href="'.get_permalink($post->ID).'" rel="permalink">'.get_the_post_thumbnail($post->id, '48').$post->post_title.'</a></li>';  
    } 
    echo '</ul>'; // this shouldn't be here 
} 
wp_reset_query(); 

答えて

3

をそのタイプによってしたがって、最初、グループ記事:

$groups = array(); 
foreach ($related->posts as $post) { 
    $groups[$post->post_type][] = $post; 
} 

次にグループと出力のリストをループ:

foreach ($groups as $type => $posts) { 
    printf('<ul class="%s">', htmlspecialchars($type)); 
    foreach ($posts as $post) { 
     printf('<li>...</li>', ...); 
    } 
    echo '</ul>'; 
} 
+0

これは私のために働いてくれてありがとう:) – unfulvio

関連する問題