次のコードを使用して、WordPress ドロップダウン メニューにカスタム フィールドのすべての一意の値を設定しています。
<form name="search" action="" method="get">
<select name="stateprov">
<option>Select...</option>
<?php
$metakey = 'state_prov';
statesProvs = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($statesProvs) {
foreach ($statesProvs as $stateprov) {
echo "<option value=\"" . $stateprov . "\">" . $stateprov . "</option>";
}
}
?>
</select>
<input type="submit" value="search" />
</form>
ただし、DB からは何も取得しないため、ポップアップ リストは空です。
次のような別のクエリを試す
$statesProvs = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_author = 2" );
期待どおりに動作します。たくさんの投稿 ID を含むポップアップが表示されます。しかし、私のカスタム メタデータで動作するはずのクエリは、空のメニューを表示するだけです (そして、print_r は空の配列を明らかにします)。
データは間違いなくDBにあります...何が間違っていますか?
また、カスタム作成されたすべてのフィールド キーと値を _custom_meta メタキーの値に書き込むカスタム メタボックス PHP クラスを使用していることも重要です。私がそれを正しく言えば。したがって:
a:61:{s:10:"state_prov";s:2:"CA";s:13:"vertical_drop";s:13:"3100ft / 945m";s:14:"base_elevation";s:14:"7953ft / 2424m";s:16:"summit_elevation";s:15:"11053ft / 3369m";s:12:"skiable_area";s:10:"3500 acres";s:16:"average_snowfall";s:14:"400in / 1016cm";s:13:
カスタムメタデータを保存するこの方法は、wpdbが適切にアクセスするのを妨げていますか?
ありがとう!