В настоящее время я работаю над измененным поиском в теме WordPress, которая запрашивает пользовательское location
таксономии и отображает его термины как результаты поиска. Я не мог найти встроенную функцию 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
не работает.
Есть ли функция, метод или, возможно, запрос MySQL, который позволит мне отображать результаты из объекта $results
основанного на содержании объекта $terms
?
Заранее спасибо.
EDIT: содержание $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 ) )