高级定制字段(循环用户配置文件字段)

时间:2014-07-08 09:54:48

标签: php wordpress advanced-custom-fields

我在wordpress配置文件中创建了一个字段(使用名为Advanced Custom Fields的插件创建),允许客户上传他们的徽标。我现在想要遍历所有这些客户并显示该徽标(最好在列表中)

以下是一些尝试,有人可以指导我找到正确的方向:

<?php
    $args = get_users( array( 'fields' => array( 'display_name' ) ) );
    $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();
            echo '<li>';
            echo '<img src="';
            the_field('company_logo');
            echo '" alt="';
            the_field('company_name');
            echo '"/>';
            echo '</li>';
        endwhile;

这是另一次尝试

        <?php
            $blogusers = get_users( array( 'fields' => array( 'display_name' ) ) );

            $variable = get_field('company_logo', $blogusers);

            foreach ( $blogusers as $user ) {
                echo the_field('company_logo', $blodusers);
            }

        ?>

另一个

<?php
    $blogusers = get_users('orderby=company_name');
    $author_id = get_the_author_meta( 'ID' );
    $image1 = get_field('company_logo', 'user_'. $author_id );
        $image2 = get_field('company_name', 'user_'. $author_id );

    foreach ($blogusers as $author_id) {
            echo '<li><div class="image_wrapper"><img class="profile1" src="';
            echo $image1['url'];
            echo '"/></div><img class="profile2 hoverShow" src="';
            echo $image2['url'];
            echo '"/><div class="imageOverlay"><p>';
            echo '</p></div></li>';

    }
?>

除HTML echos&#39;

外,上述所有内容均未显示任何结果

提前致谢

1 个答案:

答案 0 :(得分:2)

您需要为循环中的每个用户调用get_field

这样的事情:

<?php
    $blogusers = get_users();

    foreach ($blogusers as $user) {

            $author_id = $user->ID;

            $image1 = get_field('company_logo', 'user_'. $author_id );
            $image2 = get_field('company_name', 'user_'. $author_id );

            echo '<li><div class="image_wrapper"><img class="profile1" src="';
            echo $image1['url'];
            echo '"/></div><img class="profile2 hoverShow" src="';
            echo $image2['url'];
            echo '"/><div class="imageOverlay"><p>';
            echo '</p></div></li>';

    }
?>

注意:我不确定company_logocompany_name字段的数据实际上是什么样的。company_name应该返回图像听起来有点奇怪..

编辑:如果您想按company_name排序,则需要执行以下操作(请注意,此操作未经过测试)

$blogusers = get_users(array( 'meta_key' => 'company_name', 'orderby'=>'meta_value' ));

查看文档以获取更多详细信息http://codex.wordpress.org/Class_Reference/WP_User_Query