2017-10-28 1 views
3

나는 관련 사용자 인 사용자 정의 게시 유형 institutions을 보유하고 있습니다.WordPress에서 사용자 정의 게시 유형과 관련된 모든 사용자 가져 오기

새 사용자를 추가 할 때마다 Advanced Custom Fields 플러그인을 통해 연결된 기관을 선택할 수 있습니다. 그것은 나를 얻을 수 없기 때문에 지금 셋업이 완료되어

, 나는 내가 WP_Query()을 사용할 수 없습니다 나는 현재 ( single-institutions.php)

를보고하고있는 기관과 관련된 모든 사용자의 목록을 표시하려고 사용자는 wp_list_authors()을 사용할 수 없으므로 meta_query을 허용하지 않습니다.

그래서 저는 구식의 mysql 쿼리를 사용했습니다.

그러나 적절한 결과를 얻으려면 여러 테이블을 쿼리해야하기 때문에 진행 방법을 모르겠습니다.

wp_users: ID 
wp_usermeta 
    user_id 
    meta_key: institution 
    meta_value: a:1:{i:0;s:4:"2875";} // "2875" is the ID of the institution the user is associated with 

어떻게 직접 mysql 쿼리를 통해이를 수행 할 수 있습니까?

편집 : 대신 WP_User_Query()으로 바꿨습니다. 존재하지 않았다. 그러나 무엇을 넣어야할지 확신하지 못합니다. meta_value

지금은 아무 것도 표시되지 않습니다. 쿼리에서 "meta_value"를 제거하면 모든 기관과 관련된 모든 사용자가 모든 페이지에 나타납니다.

현재보고있는 교육 기관 ID ($post->ID)와 일치하도록 어떻게 좁 혔습니까?

열의 값은 wp_usermeta입니다. 그것은 연재 중입니다. 마지막에 ID를 알아 내려면 특별한 조치를 취해야합니까?

a:1:{i:0;s:4:"2875";} 

답변

2

당신은 WP_Query 유사하다 WP_User_Query를 사용해야합니다. 구체적으로, 귀하의 경우, Custom Field Parameters을보고 기관 ID을 보내십시오.

+0

감사합니다. 정말 도움이되었습니다. 'WP_User_Query()'가 존재하지 않는다. 그러나, 나는'meta_value'를 위해 무엇을 사용해야하는지 확신하지 못합니다 - 제발 당신이 좀 봐주세요. – Halnex

+0

효과가있었습니다. 나는'meta_compare'에'='대신'LIKE'을 사용해야했습니다. 고맙습니다. – Halnex

+1

@Halnex 아, 맞아, 나는 이것이 직렬화 된 배열이라는 사실을 놓쳤다. 여기에 몇 가지주의 사항이 있습니다 : 1) 데이터가 많고 사이트 성능에 영향을 줄 수있는 경우 LIKE 연산자로 메타 쿼리를 수행하는 것이 비용이 많이들 수 있습니다. 일반적으로 문제는 없지만 문제가 발생하면이 문제가 발생할 수 있습니다. 2) 'meta_value'=> ' "'. $ post-> ID. '"'와 같이 큰 따옴표를'meta_value'에 넣어야합니다. 이렇게하면''9 "'등을 선택하려고 할 때''19"'와 같은 값을 선택하는 것을 피할 수 있습니다. –

관련 문제