首页 > 解决方案 > 如何删除重复的用户详细信息

问题描述

我正在创建一个过滤系统来显示 Wordpress 站点中的所有用户(他们已通过用户注册插件注册)。

我想显示所有用户的列表,按他们的公司过滤。我设法通过使用以下方式在每个 li 上致电公司:-

.str_replace( ' ', '-', $user->user_registration_company ) .

但是,我正在努力为实际过滤的按钮执行此操作,因为它多次显示公司名称。请参阅下面的完整代码:-

<div class="networking-list">
    <?php

    $args = array(
        'role'    => 'subscriber',
        'orderby' => 'user_nicename',
        'order'   => 'ASC'
    );
    $users = get_users( $args );                    
    foreach ( $users as $user ) {
        echo 
            '<button class="filter" data-filter="all">All</button>
            <button class="filter" data-filter="all">'.str_replace( ' ', '-', $user->user_registration_company ) . '</button>';
        }

    $args = array(
        'role'    => 'subscriber',
        'orderby' => 'user_nicename',
        'order'   => 'ASC'
    );
    $users = get_users( $args );


    echo '<ul>';
    foreach ( $users as $user ) {
        echo 
            '<li class="mix ' .str_replace( ' ', '-', $user->user_registration_company ) . '">' . get_avatar( $user->ID, $size = 280 ) .'<h2 class="filter-txt">' . esc_html( $user->first_name ) . '&nbsp;' . esc_html( $user->last_name ) .'</h2><h3></li>';
        }
    echo '</ul>';

    ?>
</div>

所以我基本上希望按钮显示用户公司,但只有一次,所以我可以过滤。

谢谢!

标签: phphtmlwordpress

解决方案


您正在搜索的功能是将array_unique 所有公司加载到一个数组中并在其上运行该功能。所有重复项都将被删除,您一切顺利。


    <?php

    $companies = array();

    $args = array(
        'role' => 'subscriber',
        'orderby' => 'user_nicename',
        'order' => 'ASC'
    );
    $users = get_users($args);
    foreach ($users as $user)
    {
    $companies[] = $user->user_registration_company;
        }
    $companies = array_unique($companies);
    foreach ($companies as $company)
    {
        echo '<button class="filter" data-filter="all">All</button>
                <button class="filter" data-filter="all">' . $company . '</button>';
    }
    
    $args = array(
        'role' => 'subscriber',
        'orderby' => 'user_nicename',
        'order' => 'ASC'
    );
    $users = get_users($args);
    
    echo '<ul>';
    foreach ($users as $user)
    {
        echo '<li class="mix ' . str_replace(' ', '-', $user->user_registration_company) . '">' . get_avatar($user->ID, $size = 280) . '<h2 class="filter-txt">' . esc_html($user->first_name) . '&nbsp;' . esc_html($user->last_name) . '</h2><h3></li>';
    }
    echo '</ul>';
    
    ?>


推荐阅读