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 {
}
?>
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.
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?