カスタムフィールドの値を「あかさたな」で分ける
-
カスタムフィールドの値(name・kana)を紐づけて、あ行-ん行に振り分けているのですが
カウント数の表示が上手くいかず困っています。$rows = $wpdb->get_results( $wpdb->prepare( " SELECT m.meta_value AS name, m2.meta_value AS kana, COUNT(m.meta_value) AS cnt FROM wp_postmeta m LEFT JOIN wp_postmeta m2 ON m2.post_id = m.post_id WHERE 1=1 AND m.post_id IN (" . join(',', $posts) . ") AND m.meta_key = 'name' AND m2.meta_key = 'kana' AND m.meta_value != '' AND m2.meta_value != '' GROUP BY m.meta_value ORDER BY CAST(m2.meta_value AS CHAR) ","" )); } else { $rows = $wpdb->get_results( $wpdb->prepare( " SELECT m.meta_value AS name, m2.meta_value AS kana, COUNT(m.meta_value) AS cnt FROM wp_postmeta m LEFT JOIN wp_postmeta m2 ON m2.post_id = m.post_id WHERE 1=1 AND m.meta_key = 'name' AND m2.meta_key = 'kana' AND m.meta_value != '' AND m2.meta_value != '' GROUP BY m.meta_value ORDER BY CAST(m2.meta_value AS CHAR) ","" )); } return $rows;
カスタムフィールドに神戸(こうべ)が5個、登録されているなら下記の様になって欲しいのですが
<a href=hogehoge/meta?key=神戸>神戸 <span>5</span> </a>
※ 正常のカウントの数が5なら倍の10となってしまう。
なかなか上手くいかなかったのでカウント数の表示関連のコードを削除して放置してたら
カウント数を表示させるコードを忘れてしまってどうすることもできない状態です。<?php $array = get_name_search_options(); $kana = array("あ行" => "[あ-お]"); $result = array(); foreach ( $array as $key=>$line) { $match = FALSE; foreach( $kana as $key => $pattern){ if (preg_match("/^" . $pattern . "/u", $line->kana )) { $result[$key][] = $line->name .""; $match = TRUE; break; } } } ?> <?php foreach($result as $name => $namearray) { foreach($namearray as $namecnt) { $name = preg_replace('/\(\d*\)/','',$namecnt ); echo "<a href=\"".$url."/meta?key=name&value=".$name."\">".$namecnt."</a>\n"; } } if( empty( $result ) ) { echo '未登録'; } ?>
どのように修正を行えばいいのでしょうか?
どうか宜しくお願い致します。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタムフィールドの値を「あかさたな」で分ける」には新たに返信することはできません。