1

取締役の全リストを持っていますが、重複ではなく一意の名前のみを表示したいと考えています。のように見えるもの

ディレクターA、ディレクターB、ディレクターC、...

いいえ

ディレクターA、ディレクターA、ディレクターB、ディレクターC、ディレクターC、...

これを array_unique で実行しようとしましたが、配列にデータを入れていないようです。

foreach ループがディレクターのすべての名前を表示していることがわかりますが、どういうわけか配列 $alldirectors は空のままです。

これが私が使用しているコードです。

<?php
$resume = get_posts(array(
          'post_type' =>'resume', 
          'numberposts'=>-1, 
          'meta_key' => 'director', 
          'meta_value' => '' 
));

$alldirectors = array();
foreach( $resume as $post ) {
      $director = get_post_meta( $post->ID, 'director', true );
 }

 $directors = array_unique($alldirectors);
 foreach ($directors as $director) {
  echo $directors;
 }
 ?>

おそらく私が見逃しているのは単純なことですが、私はphpとwordpressを初めて使用します。ご協力いただきありがとうございます。

4

3 に答える 3

10

このような標準クエリを使用してみてください

global $wpdb; (this is required when are you inside the function)

$values = $wpdb->get_results("SELECT DISTINCT meta_value FROM $wpdb->postmeta pm, $wpdb->post p WHERE meta_key  = 'director' and pm.post_id=p.ID  and p.post_type='resume' ",ARRAY_A);

print_r($values);
于 2013-11-29T21:18:48.213 に答える
0

array_unique は、あなたが望むことを行います。ただし、コードを見ると、$alldirectors 配列にデータが割り当てられていません。この行を試してください:

$alldirectors = get_post_meta(blah blah); 

それ以外の

$director = get_post_meta(blah blah);
于 2013-11-29T21:00:36.673 に答える