在WP_User_Query中使用模板部件时,如何获取用户的 ACF 数据?

How can I get a user's ACF data when using a template part in a WP_User_Query?

提问人:alexconnor7 提问时间:11/14/2023 更新时间:11/14/2023 访问量:28

问:

我正在使用模板部分在执行返回用户列表时为每个结果重复 HTML。但是,我发现高级自定义字段数据没有返回。WP_User_Query

// WP_User_Query arguments
$args = array(
    'role'      => 'advisor',
    'number'    => 6
);
// The User Query
$user_query = new WP_User_Query( $args );
if ( ! empty( $user_query->get_results() ) ) :
    foreach ( $user_query->get_results() as $user ) {
        get_template_part('template-parts/advisor');
    }
endif;

...以及模板部件本身的简单示例:

<?php
    $advisor_heading = get_field('advisor_heading', 'user_'.$user->ID);
?>

<div class="advisor__heading">
    <h2><?php echo $advisor_heading; ?></h2>
</div>

因此,HTML 当然会返回,但 ACF 用户数据不会。如果我不使用模板部分,而是将其硬编码到 foreach 循环中,它可以正常工作,但在这种情况下,我需要使用模板部分。

希望有人能帮忙!

Ajax wordpress 高级自定义字段

评论


答:

0赞 katsucurry 11/14/2023 #1

可以通过 get_template_part() 函数传递参数。尝试通过函数传递用户变量。get_template_part()

get_template_part('template-parts/advisor', null, ['user' => $user]);

然后,在模板中,您可以从 args 数组中检索它。

$advisor_heading = get_field('advisor_heading', 'user_'.$args['user']->ID);