Annonce

Faites la différence entre le service WordPress.com et l'application libre WordPress.

Mettez-vous à jour ! WordPress 3.9 est disponible en français.

Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Annonce 4 : Rejoignez-nous sur Facebook, Google + et sur Twitter

#1 31-05-2012 22:09:02

dede02830
Membre WP
Date d'inscription: 22-05-2012
Messages: 5

Lien entre l'utilisateur et la page author

Bonjour,

Ma configuration WP actuelle
- Version de WordPress : WordPress 3.3.2
- Version de PHP/MySQL : MySQL: 5.1.30
- Thème utilisé : Théme personnel
- Extensions en place :
- Nom de l'hebergeur : Héberger en local
- Adresse du site : Héberger en local

Problème(s) rencontré(s) :

Alors voila je travaille sur un thème que je suis en train de réaliser mais malheureusement je n'arrive pas a résoudre un problème ...

Je crée un package pour les écoles avec différent type d'administration, les élèves en tant qu'abonné, les profs en tant qu'auteur, etc... Donc je voudrais que ces élèves qui sont des abonnés apparaissent sur une page précise, et donc une fois apparu, si l'on clique dessus qu'on accéde a leurs infos "author.php"(je suppose)

Voici mon code

Code: html

 
<?php
   
   $roles = array('administrator', 'author', 'subscriber');

   /* Loop through users to search for the admin and editor users. */
foreach( $roles as $role )
{
  	// all users with admin or editor role
	if($role == 'subscriber')
  	{
	  	$this_role = "'[[:<:]]".$role."[[:>:]]'";
	  	$query = "SELECT * FROM $wpdb->users WHERE ID = ANY (SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value RLIKE $this_role) ORDER BY user_nicename ASC LIMIT 10000";
	  	$users_of_this_role = $wpdb->get_results($query);
	  	if ($users_of_this_role)
		{
	    	foreach($users_of_this_role as $user)
			{
		    	$curuser = get_userdata($user->ID);
		      	$author_post_url=get_author_posts_url($curuser->ID, $curuser->nicename);
				echo "<div class='post'>";
				        echo get_avatar($curuser->user_email, '150', $avatar);
						echo "<h5>$curuser->display_name</h5>";
						echo "<p>"; echo get_usermeta($user->ID,"regime"); echo "</p>";
						echo "<p>"; echo get_usermeta($user->ID,"naissance"); echo "</p>";
						echo "<p>"; echo get_usermeta($user->ID,"user_email"); echo "</p>";
                                                echo "<a href=' ".the_author()." '> Voir plus </a>";

				echo '</div>';
		    }
	  	}
	}
}
    
?>

Déjà les double echo n'est pas top... Mais j'ai un autre problème qui est:

echo "<a href=' ".the_author()."  '> Voir plus </a>";

Je souhaiterai que ce lien me dirige vers la page de cette utilisateur avec toute ces données.

Quelqu'un aurait une idée ?

Un ami ma conseiller l'extension wordpress user. Mais je souhaiterai de préférence garder mon code.

Cordialement

Hors ligne

 

#2 13-06-2012 22:21:16

Qwindoo
Admin
Lieu: Lyon (69)
Date d'inscription: 03-06-2006
Messages: 3647
Site web

Re: Lien entre l'utilisateur et la page author

Salut,

Sans plugin, tu peux t'en sortir en mettant ton code dans un fichier, mettons authors.php, qui sera le template d'une Page quelconque, appelons-la "liste des membres". Une fois cela fait, il faut mettre le code qui récupère et affiche les infos de chaque utilisateur dans le template author.php et ça devrait rouler.

Quelques remarques sur ton code :

1. Au lieu de ta requête dégueulasse, tu peux utiliser la fonction get_users qui est faite pour cela.
2. Tu peux chaîner les echo en les séparant avec une simple virgule.
3. Tu peux utiliser la fonction get_author_posts_url($user->ID, $user->nicename) pour avoir l'URL de la page author.php

Code: html

<?php
$roles = array('administrator', 'author', 'subscriber');
/* Loop through users to search for the admin and editor users. */
foreach ($roles as $role)
{
	$users_of_this_role = get_users(array('role' => $role, 'orderby' => 'nicename'));
	foreach ((array)$users_of_this_role as $user)
	{
		echo '<div class="post">';
		echo get_avatar($user->user_email, '150', $avatar);
		echo '<h5>',$user->display_name,'</h5>';
		echo '<p>',get_usermeta($user->ID, 'regime'),'</p>';
		echo '<p>',get_usermeta($user->ID, 'naissance'),'</p>';
		echo '<p>',$user->user_email,'</p>';
		echo '<a href="',get_author_posts_url($user->ID, $user->nicename),'"> Voir plus </a>';
		echo '</div>';
	}
}
?>

Consultant junior en Management & SI -- Consultant WordPress & développeur Web (Laravel...)
Time To Hire Me : Application Web de gestion en ligne des candidatures de stage (gratuit)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.23
© Copyright 2005-2006 WordPress France

[ Generated in 0.022 seconds, 9 queries executed ]