web-dev-qa-db-fra.com

Commande des utilisateurs d'un rôle spécifique par nom de famille

J'essaie d'afficher une liste d'auteurs par leur nom de famille. Je peux obtenir la liste à afficher, mais je ne semble pas encore pouvoir la classer par nom de famille. Toute aide serait grandement appréciée. Josh

<?php
    $args  = array(
    // search only for Authors role
    // order results by display_name
    'orderby' => 'meta_value',
    'meta_key ' => 'last_name',
    'role' => 'guest-teacher'



    // check for two meta_values
    );
    // Create the WP_User_Query object
    $wp_user_query = new WP_User_Query($args);
    // Get the results
    $authors = $wp_user_query->get_results();
    // Check for results
    if (!empty($authors))
    {
        echo '<ul class="permanent">';
        // loop trough each author
        foreach ($authors as $author)
        {
            // get all the user's data
            $author_info = get_userdata($author->ID);
            $url = get_author_posts_url($author->ID);  

    ?>


        <h3><a href="<?php echo $url; ?>"><?php echo $author_info->last_name; ?>         </a></h3>

            <?php
        }
        echo '</ul>';
    } else {

    }
    ?>
3
Josh

Il y a apparemment un ticket ouvert à propos de ce bug .

Voici une solution de contournement que j'ai testée:

$args  = array(
    'meta_key' => 'last_name',
    'role'     => 'guest-teacher'
);

$wp_user_query = new WP_User_Query($args);
$wp_user_query->query_orderby = str_replace( 'user_login', 'wp_usermeta.meta_value', $wp_user_query->query_orderby );
$wp_user_query->query();

$authors = $wp_user_query->get_results();

Le problème avec ceci est qu'il exécute la requête deux fois.

1
Sunyatasattva

Ce qui suit fonctionne sur mon installation:

$args  = array(
        'orderby'   => 'meta_value',
        'order'     => 'DESC',
        'meta_key'  => 'last_name',
        'role'      => 'subscriber'
    );

Alors as-tu essayé:

$args  = array(
        'orderby'   => 'meta_value',
        'order'     => 'DESC',
        'meta_key'  => 'last_name',
        'role'      => 'guest-teacher'
    );

et remplacez le paramètre order par DESC ou ASC pour vérifier s’il a un effet?

ps: Et avez-vous le nom de famille rempli pour ces utilisateurs?

3
birgire