2015-04-01 2 views
0

Я сохранил определенные идентификаторы терминов в таблице wp_usermeta. Я хочу получить идентификатор пользователя, где идентификатор термина совпадает с значением «location» пользователя. Я пробовал его с нижестоящим запросом, но ничего не делает.Получить идентификатор пользователя из таблицы wp_usermeta

global $wpdb; 
    $term = get_queried_object(); 
    $query = $wpdb->get_results("SELECT user_id FROM wp_usermeta WHERE meta_key='location' AND meta_value LIKE %s",'%'.$term->term_id.'%'); 

enter image description here

ответ

1

попробовать это, вы не передавая значение правильно

$query = $wpdb->get_results("SELECT user_id FROM wp_usermeta WHERE 
meta_key='location' AND meta_value LIKE '%s,%".$term->term_id."%'"); 
+0

Спасибо за ваш ответ. ваш код имеет ошибку. – Ask4Tec

+0

@ Ask4Tec yes..edited..check now .. –

0

Есть ли основания для использования запроса SQL? Я думаю, что это будет делать то, что вы хотите точно:

$user_query = new WP_User_Query(array('meta_key' => 'location', 'meta_value' => 'ANY')); 

foreach ($user_query as $user) { 
    $user->ID; // the the user id 
} 
+0

Спасибо за ваш ответ, Да, это причина для использования SQL-запроса. На самом деле я хотел получить все термины с сообщением, относящимся к каждому автору, на странице пользовательской таксономии, и главная причина заключается в том, что авторы связывают с определенным термином администратором. например, у меня есть термин «Техас», когда вы нажимаете на «Техас», он перейдет на страницу таксономии и получит все условия, относящиеся к его автору. – Ask4Tec

0

Я понял. Вот мое решение. если кому-то нужно.

$term = get_queried_object(); 
    $wpdb->get_results($wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key='location' AND $wpdb->usermeta.meta_value LIKE %s", '%' . $term->term_id . '%')); 
Смежные вопросы