【问题标题】:Display Users attached to Custom Post Type - ACF显示附加到自定义帖子类型的用户 - ACF
【发布时间】:2021-06-06 12:57:48
【问题描述】:

我正在尝试显示附加到自定义帖子类型的用户。我创建了一个返回 ID 的 ACF-Users-Field。此字段显示在我的自定义帖子类型中。现在我想显示在这个字段中选择的用户的名字。

我能够显示我的用户的所有名称(如果我删除了参数的“meta_query”部分,但如果我将 meta_query 数组添加到我的参数中,则不会显示任何内容。我不确定,也许错误是'value',但我不知道在那里改变什么。下面我展示了相关代码:

<article>
            <?php
            $args = array(
                'role' => 'Subscriber',
            );

            $my_user_query = new WP_User_Query( $args );
            $editors = $my_user_query->get_results();


            if ( ! empty( $editors ) ) {

                foreach ( $editors as $editor ) {

                    $editor_info = get_userdata( $editor->ID );

                    $args = array(
                        'post_type' => 'projekt',
                        'meta_query' => array(
                            array(
                            'key' => 'projektteilnehmer', // name of custom field - return ID
                            'value' => $post->ID ,
                            'compare' => 'LIKE'
                            )
                        )
                    );

                    // The User Query
                    $user_query = new WP_User_Query( $args );
                    // The User Loop
                    if ( ! empty( $user_query->results ) ) { ?>

                        <?php foreach ( $user_query->results as $user ) {
                            echo $user->user_firstname;;
                        }
                    } else {
                        echo 'nothing found';
                    }

                } // endforeach

            } else {
                echo __( 'Kein Mitglied gefunden.' );
            }

            ?>
        </article>

任何帮助表示赞赏

【问题讨论】:

  • 可能有点小,您要选择具有Subscriber 角色的用户吗?或者您正在尝试选择editor 角色?
  • 我想选择具有订阅者角色的用户,这是可行的。但不是所有订阅者,只有我在自定义帖子类型的 ACF 字段“projektteilnehmer”中选择的订阅者。
  • 好的,仔细看看你的代码,我很困惑。您当前正在遍历用户,然后为 post_query 创建一个数组并将这些参数用于用户查询。因此,如果我理解正确,您将在页面上显示所有 projekt 帖子,并且在此项目中,您希望显示所有参与存储在名为 projektteilnehmer 的 AFC 字段中的项目的用户

标签: wordpress advanced-custom-fields


【解决方案1】:

根据你描述的这段代码应该做你想做的事。假设参与者的作为用户ID返回

<article>
    <?php
    $teilnehmers = get_field('projektteilnehmer', $post->ID);


    if ( ! empty( $teilnehmers ) ) {
      foreach ( $teilnehmers as $teilnehmer ) {
          $user = get_user_by('ID', $teilnehmer);
          if($user){
            echo $user->user_firstname;;
          }
      }
    } else {
      echo __( 'Kein Mitglied gefunden.' );
    }
    ?>
</article>

或者如果它们作为用户对象返回

<article>
    <?php
    $teilnehmers = get_field('projektteilnehmer', $post->ID);


    if ( ! empty( $teilnehmers ) ) {
      foreach ( $teilnehmers as $teilnehmer ) {
            echo $teilnehmer->user_firstname;;
      }
    } else {
      echo __( 'Kein Mitglied gefunden.' );
    }
    ?>
</article>

【讨论】:

    【解决方案2】:

    Jasper B 的回答将我推向了正确的方向。非常感谢:) 它正在处理这个查询:

    <?php // projekte
                                $projekte = get_posts(array(
                                    'post_type' => 'projekt',
                                    'meta_query' => array(
                                        array(
                                          'key' => 'projektteilnehmer', // name of custom field - return value id
                                          'value' => $editor_info->ID,  
                                          'compare' => 'LIKE'
                                        )
                                    )
                                
                                ));
                                ?>
                                
                                <?php if( $projekte ): ?>
                                <strong>Projekte:</strong>
                                    <ul>
                                    <?php foreach( $projekte as $projekt ):?>
                                            <li>
                                                <a href="<?php echo get_permalink( $projekt->ID ); ?>">
                                                    <?php echo get_the_title( $projekt->ID ); ?>
                                                </a>
                                            </li>
                                    <?php endforeach; ?>
                                    </ul>
                                <?php endif; 
                                // ende projekte ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多