[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.

Si vous avez des pages auteurs sur votre site, c’est à dire des pages utilisateurs. Vous pouvez avoir besoin de de créer des liens personnalisés qui pointent vers ces profils.

Il existe déjà une fonction pour ça, il s’agit de get_the_author_link, mais cette fonction retourne un lien formaté avec le nom de l’auteur du post et l’URL de sa page.

Nous aurions également pu utiliser get_author_posts_url qui ne retourne qu’une URL, mais cette fonction n’est valable qui si c’est l’URL de l’auteur du post affiché que nous voulons générer.

Ici, nous utilisons une petite fonction qui utilise get_userdata et qui va nous permettre de retourner seulement l’URL d’une page auteur et avec l’ID utilisateur de notre choix . Il sera ensuite aisée de l’utiliser dans un fichier thème.

Collez donc ces deux petites fonctions dans votre fichier functions.php, puis utilisez get_bweb_user_link pour retourner le lien et bweb_user_link  pour l’afficher.

function get_bweb_user_link($user_id) {
     if (!$user = get_userdata($user_id))
          return false;
     $name = $user->data->display_name;
     $login = $user->data->user_login;
     $link = ''.$name."";
     return $link;
}
function bweb_user_link($user_id) {
     print get_bweb_user_link($user_id);
}

Notez que le seul paramètre nécessaire est l’ID du user.

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Afficher les 7 commentaires

7 commentaires

  1. Bonjour Brice,

    Je te remercie pour ta réponse, j’ai ajouté les fonctions comme tu m’as indiqué
    :
    function get_bweb_user_link($user_id) {
    if (!$user = get_userdata($user_id))
    return false;
    $name = $user->data->display_name;
    $login = $user->data->user_login;
    $link =  ».$name. » »;
    return $link;
    }
    function bweb_user_link($user_id) {
    print get_bweb_user_link($user_id);
    }
    get_bweb_user_link(2);
    bweb_user_link(2);

    Mais je n’ai eu aucun changement, en fait je n’arrive pas à comprendre comment j’obtiens un url pour cet utilisateur , est-ce que j’ai zappé une étape? désolée si je pose trop de questions car je suis plutôt fonctionnelle 🙂

    Mercii

  2. Bonjour Sarah,

    Il ne faut pas « modifier » les fonctions PHP présentées dans l’article, mais plutôt les utiliser.

    Vous devez simplement utiliser les fonctions comme cela :
    – get_bweb_user_link(2) : pour récupérer le lien
    OU
    : pour afficher le lien dans un template par exemple

    Il s’agit d’ailleurs plutôt d’une URL et non d’un lien…

    Vous devez bien sûr avoir préalablement collé les 2 fonctions de l’article dans le fichier functions.php de votre thème (ou ailleurs si vous savez ce que vous faites).

    Bon courage

  3. Bonjour,
    J’ai ajouté l’id de l’utilisateur comme présenté ci-dessous(utilisateurs testlink), mais je n’ai aucun changement, où on doit vérifier si le lien est bien créé? merci
    function get_bweb_user_link(2) {
    if (!$user = get_userdata(2))
    return false;
    $name = $user->data->display_name;
    $login = $user->data->user_login;
    $link =  ».$name. » »;
    return $link;
    }
    function bweb_user_link(2) {
    print get_bweb_user_link(2);
    }

  4. Bonjour Loïc,
    Je pense que je t’ai induit en erreur avec le nom de mes variables.
    Si je comprends bien, tu utilises ACF, donc si on reprend :


    if ( $the_author = get_query_var( ‘author’ ) ) {
    $authorObj = get_user_by( ‘id’, $the_author );
    }
    the_field(‘first_name’, ‘user_$authorObj->ID’);
    the_field(‘rue’, ‘user_$authorObj->ID’);

    get_user_by retourne l’objet utilisateur (developer.wordpress.org/refer…t_user_by/), il faut donc récupérer l’ID utilisateur présent dans l’object et ça devrait fonctionner.

    Bon courage

  5. Merci pour votre réponse !
    Je dois vraiment être une bille parce que j’ai testé toutes les formulations mais je n’y arrive pas. J’ai testé plein de combinaisons mais dès que je ne met pas un chiffre pour l’user je n’ai plus de résultat. Je suppose que j’écris mal la variable mais …

    if ( $the_author = get_query_var( ‘author’ ) ) {
    $author_ID = get_user_by( ‘id’, $the_author );
    }
    the_field(‘first_name’, ‘user_$author_ID’);
    the_field(‘rue’, ‘user_$author_ID’);

  6. Bonjour,
    Est-il possible de récupérer le paramètre ID d’un user (pas celui de l’utilisateur connecté) depuis une page auteur ?
    Par exemple :
    Lorsque je vais visiter la page profil de Marc. La page va récupérer l’ID de Marc pour afficher un custom field supplémentaire qui correspond à Marc.
    D’avance merci pour votre réponse

    • Bonjour,
      Oui, c’est tout à fait possible.
      Il faut récupérer la variable publique « author » et ensuite, si elle existe bien (page auteur), tu pourras récupérer son ID.


      if ( $the_author = get_query_var( 'author' ) ) {
      $author_ID = get_user_by( 'id', $the_author );
      }

      Bonne journée,