1

次の問題があります。

私のWordpress 3.6では、投稿用に「トピック」というカスタムフィールドがあります。このフィールドには、RSS によって別の Web サイトからのフレーズが自動的に入力され、複数の条件が追加されます。「Cars,Bikes,Stuff,Gadget」のように記入します。

get_posts で wordpress にクエリを実行すると、foreach ループで次のようになります。

Cars,Bikes,Stuff,Gadget
Cars,Bikes
Bikes,Stuff
Gadget

これを文字列に入れて、いくつかのものを置き換えます:

$topic_filter = get_posts(
 array(
  'numberposts' => -1,
  'post_status' => 'private',
 )
);
$search_topic = array(' ', '-&-', '-|-', '-/-', '---');
$replace_topic = array("-", "-", "-", "-", "-", "");

foreach ($topic_filter as $post_topic) {
$str = str_replace($search_topic, $replace_topic, get_post_meta($post_topic->ID,     'topic', true));

echo $str;

}

最終的なエコー出力は次のとおりです。

Cars,Bikes,Stuff,Gadget,Cars,Bikes,Bikes,Stuff,Gadget

ここまでは順調ですね。しかし、重複を今すぐ削除する方法は?

私は内破/爆発を試みましたが、アイテムが foreach ループにあり、各投稿の内部にのみ適用されるため、何もしません。

しかし、最終的には、このクリーンな文字列を次のような html 出力のリストとして取得することが目標であるため、foreach ループが必要です。

<input
  type="button"
  value="Cars"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Cars-btn" 
  data-path=".Cars" 
/>
<input
  type="button"
  value="Bikes"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Bikes-btn" 
  data-path=".Bikes" 
/>
<input
  type="button"
  value="Gadget"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Gadget-btn" 
  data-path=".Gadget" 
/>

私にはかなり複雑に思えます:-(

何か案は?あなたの助けを本当にうれしく思います!

ありがとう!

4

1 に答える 1

1

array_uniqueを使用します。

$str = "Cars,Bikes,Stuff,Gadget,Cars,Bikes,Bikes,Stuff,Gadget";
$r = explode(",", $str);
$unique = array_unique($r);
$new_str = implode(",", $unique);
于 2013-08-23T11:04:54.893 に答える