
WordPress Author: Add an Edit Profile Link if Logged In
I wanted to update a WordPress site and add an ‘About the Author’ section under every post. It was a little tougher than I thought – and actually requires even more programming, but here’s the first cut:
<p class="author"> <strong>The Author: </strong><?php the_author(); ?> <strong>Website: </strong><a href="<?php the_author_url(); ?>"><?php the_author_url(); ?></a> <strong>About: </strong><?php the_author_description(); ?></p>
Next, I check to see if someone is actually logged in and display an Edit Profile link so the person can simply click and update their information (I updated this post … great comment and question from Ajay!):
<?php get_currentuserinfo(); global $user_ID; if ('' != $user_ID) { ?> <a href="/wp-admin/user-edit.php?user_id=<?php the_author_ID(); ?>">Edit Profile</a> <?php } ?> </p>
I added the class=”author” to the style sheet to make it look nice as well.
I’d like to clean up the code to not show an address or info if there is none; however, I think I’m going to have to script actual queries to the database for this. Note the “Edit Profile” link… it’s wrapped by an if statement that will only display it if a user is logged in. I thought it was kind of cool, so I wanted to share it with you in case you wanted to use it!
if (‘â?? != $user_ID) {
What is the purpose of this?
Hi Ajay!
I don’t want to show the Edit Profile link unless someone is actually logged in. So the function get_currentuserinfo() will bring back user information and the if statement verifies if the current user has a user_id… it’s a means of checking whether or not they are logged in.
In other words – if you are logged in, you see a link to edit profile. If you are not, you don’t see that link.
Doug
Before the get_currentuserinfo you should declare ‘global $user_ID;’ otherwise it doesn’t work.
Thanks, Martijn!
Nice Doug! I’ll have to implement that with version 1.0 when I add the options. Thanks for the tip.
Hi Doug,
just wondering do you know how i could use this depending on the user who is logged in?
So if the user logged in was JohnSmith it would display ‘A’ and if the user logged in was BillBob it would display ‘B’ ?
Thanks!
Hi Mike,
I’m pretty sure that the variable $user_id will return the actual User ID within your Users section in admin. So you might be able to build a case statement of if logic….
if ($user_id=="1") { echo "Doug"; }
I’ve not tested this but I’m pretty sure you have to put it within the context of the get_currentuserinfo function.
Doug
You could even tie it to the $user_level. Checkout the WordPress codex.
Nice catch Martijn!
Hi Doug. Thanks for sharing. Unfortunately, this code did not work for me:
Thanks! Works perfectly.