私は現在、カスタム分類法を照会し、そのlocation
用語を検索結果として表示するWordpressテーマ内の変更された検索に取り組んでいます。これを処理するための組み込みのWordpress関数が見つからなかったので、$wpdb query
$keywords = $_GET['s'];
$results = $wpdb->get_results( "SELECT * FROM $wpdb->terms WHERE name LIKE '%%$keywords%%'");
<ul>
<?php foreach ( $results as $result ) :?>
<li><?php echo $result->name;?></li>
<?php endforeach;?>
</ul>
これに関する問題は、テーブルにwp_terms
カスタム分類用語だけでなく、他のデフォルト用語も格納されることです。したがって、他のデフォルト用語ではなく、カスタム分類法のみの検索結果を表示するために、カスタム分類法にget_terms
属するすべての用語を取得し、結果に基づいlocation
てテーブルから用語を表示することを考えました。wp_terms
get_terms
in_array
$keywords = $_GET['s'];
$results = $wpdb->get_results( "SELECT * FROM $wpdb->terms WHERE name LIKE '%%$keywords%%'");
$terms = get_terms("location");
<ul>
<?php foreach ( $results as $result ) :?>
if(in_array($result->name, $terms)) :?>
<li><?php echo $result->name;?></li>
<?php endif;?>
<?php endforeach;?>
</ul>
ただし、$results
と$terms
は両方ともstdClassオブジェクトであるため、in_array
機能しません。
$results
オブジェクトのコンテンツに基づいてオブジェクトからの結果を表示できるようにする関数、メソッド、または場合によってはMySQLクエリのいずれかがあります$terms
か?
前もって感謝します。
編集:
の内容$terms
Array (
[0] => stdClass Object ( [term_id] => 32 [name] => US [slug] => us [term_group] => 0 [term_taxonomy_id] => 32 [taxonomy] => signs [description] => [parent] => 25 [count] => 1 )
[1] => stdClass Object ( [term_id] => 22 [name] => EU [slug] => eu [term_group] => 0 [term_taxonomy_id] => 22 [taxonomy] => signs [description] => [parent] => 0 [count] => 3 )
[2] => stdClass Object ( [term_id] => 26 [name] => AU [slug] => au [term_group] => 0 [term_taxonomy_id] => 26 [taxonomy] => signs [description] => [parent] => 22 [count] => 1 )
[3] => stdClass Object ( [term_id] => 27 [name] => IE [slug] => ie [term_group] => 0 [term_taxonomy_id] => 27 [taxonomy] => signs [description] => [parent] => 22 [count] => 2 )
[4] => stdClass Object ( [term_id] => 23 [name] => PK [slug] => pk [term_group] => 0 [term_taxonomy_id] => 23 [taxonomy] => signs [description] => [parent] => 0 [count] => 2 )
)