- Statut : non résolu
- Ce sujet contient 12 réponses, 4 participants et a été mis à jour pour la dernière fois par Dianed, le il y a 16 années et 8 mois.
-
AuteurMessages
-
2 avril 2008 à 17 h 50 min #458395
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 2.5
– Thème utilisé : thème perso
– Plugins en place : User Photo plugin (http://wordpress.org/extend/plugins/user-photo/)
– Nom de l’hebergeur : 1&1
– Adresse du site : http://blog.lesenfantsdelo.comBonjour !
J’utilise l’excellent plugin User Photo (lien juste au-dessus) et j’ai une page « auteurs », qui liste les auteurs (sans blague…) et surtout, leurs informations, comme leur profil, leur nom, leur avatar, etc.
Mon code actuel ne permet d’afficher une image que si elle est au format jpg, ce qui est embêtant vu que mes auteurs ou abonnés uploadent aussi des photos au format gif ou png.
J’aimerais intégrer le plugin User Photo dans cette page, histoire de pouvoir afficher ces trois formats d’image sans problème.
Voici mon code actuel :
<?php
global $wpdb, $table_prefix; // set global WP vars needed for script
$order = 'user_nicename'; // set order for users table query
$user_ids = $wpdb->get_col(« SELECT ID FROM $wpdb->users ORDER BY $order »); // query users
foreach($user_ids as $user_id) : // start authors’ profile « loop »
$user = get_userdata($user_id); // retrieve author (i.e. user) details
$level = $table_prefix . ‘user_level’; // set ‘user_level’ usermeta meta_key record
$user->user_level = $user->$level; // assign ‘user_level’ property to $users
$role = $table_prefix . ‘capabilities’; // set ‘role’ usermeta table meta_key record
$user->role = array_keys($user->$role); // assign ‘role’ property to $user
$user->role = $user->role[0]; // make sure $user->role is not an array
?>
<?php
$image_dir = 'wp-content/uploads/userphoto'; // directory where author images reside
$image_file = $user->user_nicename; // format for image name
$image_ext = ‘jpg’; // author image extension
$image_path = trim($image_dir, ‘/’) . ‘/’ . $image_file . ‘.’ . $image_ext;
if(file_exists(ABSPATH . $image_path)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path;
?>
<img class="user-image" src="<?php echo $author_image; ?> » alt= »<?php echo $user->display_name; ?> » title= »<?php echo $user->display_name; ?> » />
<?php endif; ?>Les modifications que j’ai apportées sont les suivantes. A la place de :
<?php
$image_dir = 'wp-content/uploads/userphoto'; // directory where author images reside
$image_file = $user->user_nicename; // format for image name
$image_ext = ‘jpg’; // author image extension
$image_path = trim($image_dir, ‘/’) . ‘/’ . $image_file . ‘.’ . $image_ext;
if(file_exists(ABSPATH . $image_path)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path;
?>J’ai mis :
<?php
$author_image = userphoto_the_author_photo();
?>qui est la fonction d’appel du plugin User photo, qui normalement, retourne le chemin vers l’image.
Le problème, c’est que quand j’appelle la page, rien n’apparaît dans la source, l’argument src reste désespérément vide. Est-ce un problème de syntaxe ?
Est-ce que quelqu’un saurait comment modifier le code pour que cela fonctionne, ou encore, modifier le code du haut pour qu’il accepte aussi les gif et les png (je ne vois pas trop comment ce serait possible simplement, mais bon, je suis très loin d’être une pro du php…).
Merci pour toutes vos suggestions !!!
La page est là :
http://blog.lesenfantsdelo.com/about/les-abonnes/ (pour les abonnés)
http://blog.lesenfantsdelo.com/auteurs-2/ (la page des auteurs)2 avril 2008 à 19 h 49 min #626327Il manque un endforeach; apres le endif;
Mais le code est pourri a souhait….
2 avril 2008 à 19 h 53 min #626328Oui, j’imagine bien, vu que je n’ai mis qu’une partie du code et que le reste n’étant pas utile pour l’exemple, je l’ai laissé dans un coin. En même temps, ce n’est pas mon code, c’est tiré de la base DOC de wordpress ^^ Quant à l’affichage des users photos (ce que je cherche à remplacer), c’est un hack de wordpress écrit par je ne sais plus trop qui.
2 avril 2008 à 20 h 03 min #626329Mis à part ça, je profite que tu sois là pour te féliciter pour Simple Tags, ce plugin est vraiment génial. Bravo !
3 avril 2008 à 20 h 31 min #626330Bon, à part la « pourriture » du code, quelqu’un a-t-il un truc à suggérer ? J’ai essayé de chercher de mon côté, mais tout ce que j’ai trouvé, c’était un autre hack, encore une fois uniquement pour les images en .jpg.
6 avril 2008 à 15 h 23 min #626331Bon, ben personne ne m’aime ou quoi ?
6 avril 2008 à 15 h 31 min #626332Le plus simple serait probablement de mettre un truc comme ça :
user_nicename; // format for image name
$image_path = trim($image_dir, ‘/’) . ‘/’ . $image_file;
if(file_exists(ABSPATH . $image_path.’.jpg’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path.’.jpg’;
elseif(file_exists(ABSPATH . $image_path.’.png’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path.’.png’;
elseif(file_exists(ABSPATH . $image_path.’.gif’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path.’.gif’;
?>6 avril 2008 à 16 h 09 min #626333Hey, merci, j’essaie ça tout de suite !!!
6 avril 2008 à 16 h 17 min #626334Rahhh, ça marche pas L’image ne s’affiche pas, et dans la source, il n’y a rien du tout…
Dommage, car ça avait l’air d’être carrément le genre de truc qui pouvait fonctionner !6 avril 2008 à 16 h 24 min #626335Erratum : ça marche super bien, c’est juste moi qui avais fait une connerie avec mon code.
Merci !!!
Le topic peut donc être marqué comme Résolu, et je suis sûre que je ne serai pas la seule à en profiter !!!
6 avril 2008 à 16 h 39 min #626336Ok, deux ou trois petites choses : avec le script ci-dessus, si un auteur n’a pas d’image, curieusement, il récolte l’image de l’auteur du dessus…
Assez embêtant, au final.Du coup, j’ai fait ça :
user_nicename; // format for image name
$image_path = trim($image_dir, ‘/’) . ‘/’ . $image_file;
if(file_exists(ABSPATH . $image_path . ‘.jpg’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path . ‘.jpg’;
elseif(file_exists(ABSPATH . $image_path . ‘.png’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path . ‘.png’;
elseif(file_exists(ABSPATH . $image_path . ‘.gif’)) :
$author_image = get_bloginfo(‘home’) . ‘/’ . $image_path . ‘.gif’;
else :
$author_image = « http://domain.com/wp-content/uploads/userphoto/default.gif »;
endif; ?>
<img class="user-image" src=" » alt= »display_name; ?> » title= »display_name; ?> » />Je ne suis pas sûre sûre de la syntaxe, mais je n’obtiens pas d’erreur et tout fonctionne correctement.
Si quelqu’un a quelque chose à dire sur le code, qu’il se manifeste, car je suis bien consciente d’être loin d’être une pro du php, et j’aimerais beaucoup m’améliorer !!!29 mai 2008 à 12 h 33 min #626337Merci pour cette évolution !
J’avais juste une question toute bête… tu l’as générée comment ta page avec les auteurs ?
Sais tu si il existe un moyen pour insérer un moteur de recherche ou je ne sais quoi à cette longue liste d’auteur ?Merci,
Diane
29 mai 2008 à 12 h 35 min #626338Erratum : je crois avoir trouvé ! http://codex.wordpress.org/Author_Templates
Merci -
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.