2012-09-21 74 views
1

下面的函數按照發布順序列出自定義字段的值。例如:按字母順序獲取自定義字段值

  • 弗蘭克·卡普拉
  • 希區柯克
  • 伍迪·艾倫
  • 伍迪·艾倫
  • 弗蘭克·卡普拉
  • 阿莫多瓦

我想獲得這個名單中字母順序和不重複,鏈接到每個項目<a href="Woody-Allen">Woody Allen</a> 。例如:

  • 希區柯克
  • 弗蘭克·卡普拉
  • 阿莫多瓦
  • 伍迪艾倫

這是代碼:

<?php 
$movie_reviews = get_posts('numberposts=-1&orderby=post_name'); 
foreach($movie_reviews as $post) : setup_postdata($post); 
?> 
<span> 
<?php $director = get_post_meta($post->ID, "director", $single = true); 
if($director !== '') { 
echo $director; 
} ?> 
</span> 
<?php endforeach; ?> 

這可能嗎?感謝任何幫助。

回答

0

使用get_posts,你可以用meta_value訂購的帖子是這樣的:

$movie_reviews = get_posts(array(
    'numberposts'=>-1, 
    'order'=>'ASC', 
    'orderby'=>'meta_value', 
    'meta_key'=>'director' 
)); 

要刪除重複,你可以建立董事的數組:

$directors = array(); 
foreach($movie_reviews as $post) { 
    $director = get_post_meta($post->ID, 'director', true); 
} 
$directors = array_unique($directors); 

而後就可以顯示他們爲你想要:

foreach ($directors as $director) { 
    // display what you want 
} 

編輯:只顯示一個*導演:

foreach ($directors as $director) { 
    if (strtolower($director[0])=='a') { 
     // display what you want 
    } 
} 
+0

完美@soju。您只能列出名稱以字母「a」開頭的董事嗎? –

+0

答覆已更新。 – soju

+0

大@soju。非常感謝你。您可以按出現次數對列表進行排序? –