ログイン中のユーザーと同じタクソノミーを持つユーザー一覧を取得する

harada 11views 更新:2016年10月26日

ログイン中のユーザーと同じタクソノミーを持つユーザー一覧を取得するための覚書です。
あらかじめユーザーとカスタムタクソノミーを紐付けるのには「LH User Taxonomies」を利用しています。

ex.areaというカスタムタクソノミーをユーザーと紐付けている場合。

  $owner_ids = array();
  $user = wp_get_current_user();
  $user_id = $user->get('id');
  $cur_terms = wp_get_object_terms( $user_id,  'area' );
  $cur_terms_array = array();
  if ( ! empty( $cur_terms ) ) {
    if ( ! is_wp_error( $cur_terms ) ) {
      foreach( $cur_terms as $term ) {
        $cur_terms_array[] = $term->slug;
      }
    }
  }
  $owner_lists =get_users( array(
    'orderby' => 'ID',
    'order' => 'ASC'
  ) );
  foreach($owner_lists as $owner):
    $oid = $owner->ID;
    $owner_terms = wp_get_object_terms( $oid,  'area' );
    if ( ! empty( $owner_terms ) ) {
      if ( ! is_wp_error( $owner_terms ) ) {
        foreach( $owner_terms as $term ) {
          if (in_array($term->slug,$cur_terms_array)) {
            $owner_ids[] = $oid;
          }
        }
      }
    }
  endforeach;
  return $owner_ids;

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません