在ACF关系字段中显示用户数据(用户类型)

时间:2018-08-30 作者:user2265915

我试图显示用户信息,包括由ACF关系用户字段确定的自定义字段,所有这些字段都包含在灵活的内容字段中。

在回答/注释后编辑更新的代码,但仍然无法输出任何内容-我的所有变量都是空的。

灵活的内容部分很好,我只是将其包含在上下文中。

不过,我在获取相关用户信息方面遇到了困难。

在灵活的内容布局中,我有:

Field Type: 用户
Select multiple values?:
Return format: 用户阵列

然后,在我的模板中,我有(大部分HTML已删除):

(roleauthor_image 是用户条目中的ACF字段)。

<?php
$posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

      setup_postdata($post);

      $user_info = get_userdata($post);
      $image = get_field(\'author_image\', \'user_\' . $user_info->post_author );
      $role = get_field(\'role\', \'user_\' . $user_info->post_author );
      ?>

      <p><?php echo $role; ?></p>
      <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

    <?php endforeach;

  endif;
  wp_reset_postdata(); ?>
我还尝试了:

<?php
$posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

      setup_postdata($post);

      $image = get_field(\'author_image\');
      $role = get_field(\'role\');
      ?>

      <p><?php echo $role; ?></p>
      <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

    <?php endforeach;

  endif;
  wp_reset_postdata(); ?>
我的变量仍然是空的。

值得注意的是,图像字段返回值在ACF中设置为“image Array”。

任何指向正确方向的指示都值得赞赏。

3 个回复
最合适的回答,由SO网友:user2265915 整理而成

该解决方案与Lewis的答案仅略有不同:

<?php
  $posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

        $userdata = get_user_by(\'ID\',$post[\'ID\']);
        $image = get_field(\'author_image\', \'user_\'. $post[\'ID\'] );
        $role = get_field(\'role\', \'user_\'. $post[\'ID\'] );

        echo $userdata->first_name;
        echo $role;

    endforeach;

    endif;

wp_reset_postdata(); ?>

SO网友:Lewis Donovan

你其实不需要打电话get_userdata(), 您需要的所有数据都应位于关系字段数组中:

EDIT: 将post ID和用户ID添加到呼叫get_field().

<?php
$posts = get_sub_field(\'who_to_show\');

    if( $posts ): ?>

        <?php foreach( $posts as $post):

            setup_postdata($post);
            $user_info = get_field( \'relational_user_field\', $post->ID );
            $image = get_the_field(\'author_image\', \'user_\'.$user_info->ID );
            $role = get_the_field(\'role\', \'user_\'.$user_info->ID );
            ?>

            <h3><?php echo $user_info->user_nicename; ?></h3>
            <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

        <?php endforeach;
    endif;
    wp_reset_postdata();

endif; ?>
显然是交换\'relational_user_field\' 用于实际字段名。用户数组中返回的数据与中的返回值相同the_author_meta

SO网友:honk31

你写的get_the_field, 而获取acf数据的正确功能是get_fieldthe_field 如果你想立即回应这些东西。。我想,这打破了你的模板。

不确定,如果我没弄错,但是如果你添加了字段author_image 对于用户来说,下面的答案将帮助您实现目标。如果不是,那么我的答案就是废话:)

从用户处获取acf数据的正确方法如下:

get_field(\'author_image\', \'user_\' . $user_info->post_author );
当你打电话的时候get_field(\'parameter\') 它将从当前帖子返回数据,类似于get_field(\'parameter\', get_the_ID()), 因此,如果您将第二个参数更改为您拥有的任何ID,您可以从该特定ID获得它。。如果user 是的user_(USER_ID)

结束

相关推荐

在ACF关系字段中显示用户数据(用户类型) - 小码农CODE - 行之有效找到问题解决它

在ACF关系字段中显示用户数据(用户类型)

时间:2018-08-30 作者:user2265915

我试图显示用户信息,包括由ACF关系用户字段确定的自定义字段,所有这些字段都包含在灵活的内容字段中。

在回答/注释后编辑更新的代码,但仍然无法输出任何内容-我的所有变量都是空的。

灵活的内容部分很好,我只是将其包含在上下文中。

不过,我在获取相关用户信息方面遇到了困难。

在灵活的内容布局中,我有:

Field Type: 用户
Select multiple values?:
Return format: 用户阵列

然后,在我的模板中,我有(大部分HTML已删除):

(roleauthor_image 是用户条目中的ACF字段)。

<?php
$posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

      setup_postdata($post);

      $user_info = get_userdata($post);
      $image = get_field(\'author_image\', \'user_\' . $user_info->post_author );
      $role = get_field(\'role\', \'user_\' . $user_info->post_author );
      ?>

      <p><?php echo $role; ?></p>
      <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

    <?php endforeach;

  endif;
  wp_reset_postdata(); ?>
我还尝试了:

<?php
$posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

      setup_postdata($post);

      $image = get_field(\'author_image\');
      $role = get_field(\'role\');
      ?>

      <p><?php echo $role; ?></p>
      <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

    <?php endforeach;

  endif;
  wp_reset_postdata(); ?>
我的变量仍然是空的。

值得注意的是,图像字段返回值在ACF中设置为“image Array”。

任何指向正确方向的指示都值得赞赏。

3 个回复
最合适的回答,由SO网友:user2265915 整理而成

该解决方案与Lewis的答案仅略有不同:

<?php
  $posts = get_sub_field(\'who_to_show\');

  if( $posts ):

    foreach( $posts as $post):

        $userdata = get_user_by(\'ID\',$post[\'ID\']);
        $image = get_field(\'author_image\', \'user_\'. $post[\'ID\'] );
        $role = get_field(\'role\', \'user_\'. $post[\'ID\'] );

        echo $userdata->first_name;
        echo $role;

    endforeach;

    endif;

wp_reset_postdata(); ?>

SO网友:Lewis Donovan

你其实不需要打电话get_userdata(), 您需要的所有数据都应位于关系字段数组中:

EDIT: 将post ID和用户ID添加到呼叫get_field().

<?php
$posts = get_sub_field(\'who_to_show\');

    if( $posts ): ?>

        <?php foreach( $posts as $post):

            setup_postdata($post);
            $user_info = get_field( \'relational_user_field\', $post->ID );
            $image = get_the_field(\'author_image\', \'user_\'.$user_info->ID );
            $role = get_the_field(\'role\', \'user_\'.$user_info->ID );
            ?>

            <h3><?php echo $user_info->user_nicename; ?></h3>
            <img src="<?php echo $image[\'url\']; ?>" alt="<?php echo $image[\'alt\']; ?>" />

        <?php endforeach;
    endif;
    wp_reset_postdata();

endif; ?>
显然是交换\'relational_user_field\' 用于实际字段名。用户数组中返回的数据与中的返回值相同the_author_meta

SO网友:honk31

你写的get_the_field, 而获取acf数据的正确功能是get_fieldthe_field 如果你想立即回应这些东西。。我想,这打破了你的模板。

不确定,如果我没弄错,但是如果你添加了字段author_image 对于用户来说,下面的答案将帮助您实现目标。如果不是,那么我的答案就是废话:)

从用户处获取acf数据的正确方法如下:

get_field(\'author_image\', \'user_\' . $user_info->post_author );
当你打电话的时候get_field(\'parameter\') 它将从当前帖子返回数据,类似于get_field(\'parameter\', get_the_ID()), 因此,如果您将第二个参数更改为您拥有的任何ID,您可以从该特定ID获得它。。如果user 是的user_(USER_ID)

相关推荐