게시물이 the_post()
(각각을 통해 setup_postdata()
) 통해 데이터를 설정 하고 API를 통해 액세스 할 수있게되면 ( get_the_ID()
예 : 현재 로그인 한 사용자 setup_userdata()
의 전역 변수를 채우고, 이 작업에 유용하지 않음) 사용자 당 메타 데이터를 표시하십시오.
<?php
get_header();
// etc.
// In the main template file
$users = new \WP_User_Query( [ ... ] );
foreach ( $users as $user )
{
set_query_var( 'user_id', absint( $user->ID ) );
get_template_part( 'template-parts/user', 'contact_methods' );
}
그런 다음 wpse-theme/template-parts/user-contact_methods.php
파일에서 사용자 ID에 액세스해야합니다.
<?php
/** @var int $user_id */
$some_meta = get_the_author_meta( 'some_meta', $user_id );
var_dump( $some_meta );
그게 다야.
설명은 실제로 질문에서 인용 한 부분 위에 정확히 있습니다.
그러나 모든 쿼리 변수 load_template()
를 get_template_part()
추출 WP_Query
하여로드 된 템플릿의 범위로 간접적으로 호출되는입니다 .
기본 PHP extract()
함수는 변수 ( global $wp_query->query_vars
속성)를 "추출"하고 모든 부분을 키와 정확히 동일한 이름을 가진 자체 변수에 넣습니다. 다시 말해:
set_query_var( 'foo', 'bar' );
$GLOBALS['wp_query'] (object)
-> query_vars (array)
foo => bar (string 3)
extract( $wp_query->query_vars );
var_dump( $foo );
// Result:
(string 3) 'bar'
set_query_var
하고get_query_var
그러나 이것이의 값을 사용하기위한이었다$args
A를 전달 배열을WP_Query
. 이것을 배우기 시작한 다른 사람들에게 도움이 될 수 있습니다.