在前端用户的个人资料页面上输出ACF中继器(使用旗舰会员创建)

时间:2019-12-08 作者:Chris Osiak

我正在使用Ultimate成员插件来管理我的用户目录。我还使用高级自定义字段在用户配置文件页面的后端创建一些自定义字段(位置:user form>equal>add/edit),我想通过当前用户配置文件页面上的快捷码输出这些字段。

这就是我所尝试的:

function acf_repeater() {

um_fetch_user( get_current_user_id() ); {

  if( have_rows(\'repeater_name\') ):

    while ( have_rows(\'repeater_name\') ) : the_row();

      the_sub_field(\'subfield_name\');

    endwhile;

  else :

  endif;
  } 
}

add_shortcode(\'acf_repeater_shortcode\', \'acf_repeater\');
但这行不通。有什么建议吗?

1 个回复
SO网友:Chris Osiak

我设法找到了一个解决方案——也许这对将来的人会有帮助……)

这个函数将创建一个类似于后端中继器的表。在这种情况下,可以根据需要调整4列并设置其样式。

function acf_repeater() {

$user_id = get_current_user_id();
ob_start(); ?>
<?php if( have_rows(\'repeater_name\',"user_{$user_id}" ) ): ?>

<table>
   <tr>
    <td>Column 1 header</td><td>Column 2 header</td><td>Column 3 header</td><td>Column 4 header</td>
   </tr>

<?php while ( have_rows(\'repeater_name\', "user_{$user_id}" ) ) : the_row(); 

    // vars
    $var1 = get_sub_field(\'subfield_1_name\');
    $var2 = get_sub_field(\'subfield_2_name\');
    $var3 = get_sub_field(\'subfield_3_name\');
    $var4 = get_sub_field(\'subfield_4_name\');

?>
    <tr>
        <td><?php echo $var1; ?></td><td><?php echo $var2; ?></td><td><?php echo $var3; ?></td><td><?php echo $var4; ?></td>
    </tr>


<?php endwhile; ?>

</table>
<?php else: echo \'<span>No data</span>\'; ?>
<?php endif; ?>
<?php $output = ob_get_clean();
return $output;
}

add_shortcode(\'acf_repeater_shortcode\', \'acf_repeater\');`