質問: array_values($termarray); print_r($termarray); print_r(sizeof($termarray)); if ($termarray[$i] != '') { ?><option value="<?php bloginfo('url'); echo "/client_name/"; echo $termarray[$i]; ?>"><?php echo $termarray[$i]; ?></option><?php }// end of if $i++; endwhile; } wp_reset_query(); これが配列からの出力です。ループ内で新しいポストが呼び出されるたびに呼び出されるため、配列の出力が複製されます。このページはこちらから入手できます。 http://magicvideo.com/cms/work/ 私が何を意味するのかを知るためにソースを見てください。
回答: こんにちは@ hunter brelsford:linkedinの wordpressグループからお会いできて嬉しいです 。私はあなたの質問を誤解しているかもしれませんが、あなたは単に配列の重複を取り除こうとしているように思えますか?例えば、あなたが配列クライアントを持っているとしましょう:<?php $clients = array( 'jones construction', 'smith wholesale', 'smith wholesale', 'williams dry cleaning' ); そして、あなたはこのような配列に変換したいですか?<?php $clients = array( 'jones construction', 'smith wholesale', 'williams dry cleaning' ); (そうであれば、それはphpの質問であり、wordpressの質問ではありません。通常は何か を送りますが 、とにかくここで答えようと思います。)簡単です。配列キーはphp内で一意であるため、配列を反転して(それらのキーと値を交換して)配列キーを返すだけで、次のように一意の配列が得られます。<?php $clients = array( 'jones construction', 'smith wholesale', 'smith wholesale', 'williams dry cleaning' ); print_r(array_keys(array_flip($clients))); そのコードは印刷されます:array ( [0] => jones construction [1] => smith wholesale [2] => williams dry cleaning ) それはあなたが何をしていたのですか?更新:こんにちは@ hunter brelsford:私はあなたの更新に答えています。さて、なぜ私たちはこれを違う方法でやろうとしないのですか?これはあなたのウェブサイトのルートにtest.phpとしてコピーし、それを動作させるために http://magicvideo.com/test.php として実行することができるスタンドアロンの例です:<?php include "wp-load.php"; header('content-type:text/plain'); global $wpdb; $sql = <<<sql select distinct tt.term_id from {$wpdb->posts} p inner join {$wpdb->term_relationships} tr on p.id = tr.object_id inner join {$wpdb->term_taxonomy} tt on tt.term_taxonomy_id = tr.term_taxonomy_id where 1=1 and p.post_status='publish' and p.post_type='our_work' and tt.taxonomy='client_name' sql; $terms = $wpdb->get_results($sql); $term_ids = array(); foreach($terms as $term) { $term_ids[] = $term->term_id; } $terms = get_terms('client_name',array( 'include'=> implode(',',$term_ids), )); print_r($terms); 生のsqlを使用してtaxonomy='client_name'の'post_type='our_work'内の用語を照会し、次に$term->term_idsを収集して分類用語のリストをフィルタリングします。 wordpressがapiを通じてこのデータを取得するための良い方法を提供していないため、生のsqlを使用しました。少なくとも他の誰かがapiを使用しないほうが良い方法を知っている場合はわかりません(必要以上に多くのデータをロードする必要はありません()。うまくいけば、これはあなたの例でこのコードを使用できるようになるアプローチを示唆するでしょうか?知らなければ教えてください。