WPBeginner

Beginner's Guide for WordPress

  • Blog
    • Beginners Guide
    • News
    • Opinion
    • Showcase
    • Themes
    • Tutorials
    • WordPress Plugins
  • Start Here
    • How to Start a Blog
    • Create a Website
    • Start an Online Store
    • Best Website Builder
    • Email Marketing
    • WordPress Hosting
    • Business Name Ideas
  • Deals
    • Bluehost Coupon
    • SiteGround Coupon
    • WP Engine Coupon
    • HostGator Coupon
    • Domain.com Coupon
    • Constant Contact
    • View All Deals »
  • Glossary
  • Videos
  • Products
X
☰
Beginner's Guide for WordPress / Start your WordPress Blog in minutes
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
Recommended
WordPress Plugins
View all Guides

WPBeginner» Blog» Tutorials» How to Display an Author List with Avatars in WordPress Contributors Page

How to Display an Author List with Avatars in WordPress Contributors Page

Last updated on June 21st, 2012 by Editorial Staff
30 Shares
Share
Tweet
Share
Pin
Free WordPress Video Tutorials on YouTube by WPBeginner
How to Display an Author List with Avatars in WordPress Contributors Page

While working on a client’s website, we realized that the built-in function for listing authors was not enough. We showed you how to display all authors from your site, but that method was only good if you want a simple list to display in your sidebar. If you want to create a more content-rich and useful contributors page, then that function is useless.

In this article we will show you how you can create a contributors page which will display a list of authors with avatars or userphoto and any other information that you like. This tutorial is an intermediate level tutorial.

First thing you need to do is create a custom page using this template.

Then you will need to open functions.php file in your themes folder and add the following code:

function contributors() {
global $wpdb;

$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users ORDER BY display_name");

foreach($authors as $author) {
echo "<li>";
echo "<a href=\"".get_bloginfo('url')."/?author=";
echo $author->ID;
echo "\">";
echo get_avatar($author->ID);
echo "</a>";
echo '<div>';
echo "<a href=\"".get_bloginfo('url')."/?author=";
echo $author->ID;
echo "\">";
the_author_meta('display_name', $author->ID);
echo "</a>";
echo "</div>";
echo "</li>";
}
}

By adding this function you are telling WordPress to create a function that will display author’s name, and author’s avatar. You can change the avatar to userphoto plugin setting by simply changing the following line:

echo get_avatar($author->ID);

and replacing it with:

echo userphoto($author->ID);

You can add more features to this function such as displaying author URL and other information from the profile by following the structure used.

You would also need to add the following lines to your CSS file:

#authorlist li {
clear: left;
float: left;
margin: 0 0 5px 0;
}

#authorlist img.photo {
width: 40px;
height: 40px;
float: left;
}

#authorlist div.authname {
margin: 20px 0 0 10px;
float: left;
}

Once you are done adding the function, now you would need to call it in your page-template. Open the contributors.php file or whatever you name the file. Follow the same page template as your page.php and in the loop, just add this function instead of displaying the content:

<div id="authorlist"><ul><?php contributors(); ?></ul></div>

This will provide you with a more content-rich contributors page. This trick is excellent for Multi-Author blogs.

Now here is an example of how we used it:

Example of a Contributors Page with Author List and other Info

If you want to have a contributors page with information like displayed in the example above, you will need to make a few changes to the original function. We have an example code that will get you exactly everything displayed in the image above.

function contributors() {
global $wpdb;

$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name");

foreach ($authors as $author ) {

echo "<li>";
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">";
echo get_avatar($author->ID);
echo "</a>";
echo '<div>';
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">";
the_author_meta('display_name', $author->ID);
echo "</a>";
echo "<br />";
echo "Website: <a href=\"";
the_author_meta('user_url', $author->ID);
echo "/\" target='_blank'>";
the_author_meta('user_url', $author->ID);
echo "</a>";
echo "<br />";
echo "Twitter: <a href=\"http://twitter.com/";
the_author_meta('twitter', $author->ID);
echo "\" target='_blank'>";
the_author_meta('twitter', $author->ID);
echo "</a>";
echo "<br />";
echo "<a href=\"".get_bloginfo('url')."/author/";
the_author_meta('user_nicename', $author->ID);
echo "/\">Visit&nbsp;";
the_author_meta('display_name', $author->ID);
echo "'s Profile Page";
echo "</a>";
echo "</div>";
echo "</li>";
}
}

This code is utilizing User Photo plugin. The twitter field is being displayed using the trick we mentioned in the article How to Display Author’s Twitter and Facebook in the Profile page.

The CSS for example would look like:

#authorlist ul{
list-style: none;
width: 600px;
margin: 0;
padding: 0;
}
#authorlist li {
margin: 0 0 5px 0;
list-style: none;
height: 90px;
padding: 15px 0 15px 0;
border-bottom: 1px solid #ececec;
}

#authorlist img.photo {
width: 80px;
height: 80px;
float: left;
margin: 0 15px 0 0;
padding: 3px;
border: 1px solid #ececec;
}

#authorlist div.authname {
margin: 20px 0 0 10px;
}

You can display more information if you like by using the advanced code as your guide.

Source of this Function

30 Shares
Share
Tweet
Share
Pin
Popular on WPBeginner Right Now!
  • How to Properly Move Your Blog from WordPress.com to WordPress.org

  • How to Fix the Error Establishing a Database Connection in WordPress

    How to Fix the Error Establishing a Database Connection in WordPress

  • Checklist

    Checklist: 15 Things You MUST DO Before Changing WordPress Themes

  • Revealed: Why Building an Email List is so Important Today (6 Reasons)

    Revealed: Why Building an Email List is so Important Today (6 Reasons)

About the Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi. Trusted by over 1.3 million readers worldwide.

The Ultimate WordPress Toolkit

101 Comments

Leave a Reply
  1. Shane says:
    Jan 11, 2018 at 2:01 pm

    A little new to WP…

    So when i implement the code in the list displayed, it doesn’t link back to the actual profiles, it links back to /?author=1 instead of /authors/author-name

    How would I go about fixing this?

    Reply
  2. mohammed Adel says:
    Jun 28, 2017 at 3:52 am

    i need to get an sepcial author info with his avatar and bio in a page, not related with his posts

    Reply
  3. Antti says:
    Mar 14, 2017 at 7:09 am

    How can I show only authors who has posts to display? Can’t find any solution to do so. Thanks a lot!

    Reply
  4. Raj Kumar says:
    Sep 28, 2016 at 7:02 am

    Nice Tutorial. A great solution to display list of authors with their pictures and bio, exploring more and more.

    Thanks

    Reply
  5. jasmine says:
    Apr 13, 2016 at 1:40 am

    A-Salam!
    I want to show top three users by posts how this possible ?
    thanks

    Reply
  6. Abubakar says:
    Nov 6, 2015 at 10:47 pm

    1. How to Display Top 10 Author List with Avatars in WordPress..?

    2. how to make this system..?

    Reply
  7. Felipe says:
    Sep 17, 2015 at 2:26 pm

    Please, how may i get only avatars diferent the default avatars from wordpress ? thank you

    Reply
  8. Felipe says:
    Aug 29, 2015 at 7:34 pm

    thank you so much, i looking for this on internet many many time and ive never found this code, thank you.

    Reply
  9. ZNET says:
    Jan 17, 2015 at 4:40 am

    hi there! thanks about quicly answer.
    I have another question.
    How can I display the field “twitter:” only if the area isn’t empty?

    thanks again.

    Reply
  10. WPBeginner Staff says:
    Jan 4, 2015 at 2:13 pm

    Please take a look at SEO Friendly URL Structure for WordPress.

    Reply
  11. ZNET says:
    Jan 3, 2015 at 4:13 pm

    hello, thank you for the tut, I have a little question. its works great, only the link of the user is going to direction “authors/nicname”…but if I use a diffrent way of links like “p=?ID” how can i change the href?

    Thank you.

    Reply
  12. Daniel Hutchinson says:
    Oct 6, 2014 at 12:21 pm

    Hi there!

    First of all, this code is great. Thanks for helping my site.

    I’m trying to add a post count to the code you wrote, but really don’t know anything useful about php, i added this code but it didn’t work.

    echo wp_list_authors(‘optioncount=1’, $author->ID);

    Have you got any advice to help me add this in? It’s a shame there isn’t an author_meta tag for counting posts!

    Thanks in advance. Keep up the good work.

    Reply
  13. Spaider-Art says:
    Aug 27, 2014 at 10:20 pm

    how to add just 4 authors ? tnx

    Reply
  14. Deepa7476 says:
    May 14, 2014 at 8:19 pm

    I have a CHILD THEME > function.php and included this code.

    Calling the usual — — is giving me a white-screen. I can see the problem, this refrences the function.php in the mother-theme.

    How do I make the call, so that this calls the function.php from child-theme

    Edit update: I removed the function.php from child theme folder, and site loaded back just fine

    Reply
  15. Sunit says:
    Apr 12, 2014 at 7:40 pm

    How do get a count of the no of posts each author has written?

    Reply
  16. Mark Genest says:
    Apr 4, 2014 at 4:40 pm

    Hi,

    How can I include only users from a certain role?

    Thanks alot!

    Reply
    • WPBeginner Support says:
      Apr 5, 2014 at 12:07 am

      For that you will need a little different code, particularly the query part:

      $user_query = new WP_User_Query( array( 'role' => 'Administrator' ) );
      
      if ( ! empty( $user_query->results ) ) {
      	foreach ( $user_query->results as $user ) {
      		echo '<p>' . $user->display_name . '</p>';
      	}
      } else {
      	echo 'No users found.';
      }
      
      Reply
      • Nate says:
        May 27, 2015 at 11:57 am

        Is there a way of writing that where the user is above a certain role (e.g. Contributor level or above)?

        Reply
      • Gabrielle says:
        Sep 3, 2015 at 3:05 pm

        Hi, how can i add avatar to author in wp_list_authors?
        Or add this:
        (‘exclude_admin=0&optioncount=1&show_fullname=0&hide_empty=1
        &feed_image=mylinktoimagehere.png’)

        to contributors?

        Reply
  17. Rhodo says:
    Mar 6, 2014 at 8:42 am

    Hi There,

    This tutorial is really great. How woulkd one achieve to exclude multiple users from the list? I tried using array (admin, etc) or ‘admin’ , ‘other_user’ but that doesnt work.

    Thanks in advance!

    Reply
  18. Michael says:
    Feb 16, 2014 at 9:17 am

    Hi,

    who can i sort by last Name instead of display_name.

    This is a nice script.

    Reply
    • Michael says:
      Feb 17, 2014 at 6:21 am

      change to ORDER BY SUBSTRING_INDEX(display_name, ‘ ‘, -1) ASC

      Reply
  19. Michael says:
    Jan 29, 2014 at 6:46 am

    Who can i exclude the admin of the List ?

    Reply
    • WPBeginner Support says:
      Jan 29, 2014 at 9:03 pm

      Try changing SQL Query on line 4 like this:

      $authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE user_nicename != 'admin' ORDER BY display_name");
      
      Reply
      • Rhodo says:
        Mar 5, 2014 at 10:56 am

        Hi,

        And how can i exclude multiple authors from this query?

        $authors = $wpdb->get_results(“SELECT ID, user_nicename from $wpdb->users WHERE user_nicename != ‘admin’ ORDER BY display_name”);

        Thanks in advance!

        Reply
  20. Madhav Tripathi says:
    Jan 7, 2014 at 10:01 am

    I tried it, it works very well.
    Is there a way to make it responsive?

    Reply
  21. Oshi says:
    Nov 26, 2013 at 12:31 am

    Hi thanks for your time for making a great tutorial.

    Hi can you please help me to display only one author photo only with no info or name just they photo only. I want to use this as a profile public photo display

    thanks in advance

    Reply
    • WPBeginner Support says:
      Nov 26, 2013 at 3:37 am

      Oshi, can’t you just add the image in your page, or post, or theme template? Like this:

      <img src="http://www.yoursite.com/path/to/author-image.jpg" />

      Reply
  22. Lal says:
    Jul 26, 2013 at 9:51 am

    How do I ORDER by the highest/top contributor? Thanks.

    Reply
  23. Guy N says:
    Jun 16, 2013 at 3:50 pm

    This is exactly what I was looking for. Thank you very much.
    Is there also a way to show which authors are online/offline?

    Reply
    • Editorial Staff says:
      Jun 16, 2013 at 10:13 pm

      No, its not possible to show which author is online or offline.

      Reply
  24. Nguyen Dat Tai says:
    Jun 15, 2013 at 10:40 pm

    Hello,

    How to create a Contributors Page for a child Theme in Genesis?

    Thanks

    Reply
    • Editorial Staff says:
      Jun 16, 2013 at 9:47 am

      You would have to create a custom page template and then utilize this code. Alternatively, you can use this plugin:

      https://www.wpbeginner.com/plugins/how-to-create-a-simple-staff-list-in-wordpress/

      Reply
  25. Ganesh Matkam says:
    May 12, 2013 at 6:12 am

    Its wonderful! you have given me exactly what I need, Thank you!

    Reply
  26. Bill Quick says:
    Apr 18, 2013 at 1:05 pm

    Thanks and see the WordPress plugin list-site-contributors plugin. Cheers.

    Reply
  27. kate says:
    Mar 15, 2013 at 5:23 pm

    For some reason – even though this works well functionally – my CSS isn’t panning out. The text/links is directly below the avatars. Any thoughts why? Nothing I do will change it – I’ve tried doing it in Firebug to test out changes but the CSS won’t even show up.

    other than that, works great.

    Reply
    • Editorial Staff says:
      Mar 17, 2013 at 11:49 pm

      Can’t say without really analyzing your CSS code. But again, the issue is not with the PHP code. Most likely in your CSS.

      Reply
    • Inra Jaka says:
      Mar 20, 2013 at 8:35 pm

      Hi, I loved this tutorial. I had the same problem with Kate, the photo css does not apply (float to the left and sized) and I get this instead
      class=”wp-user-avatar wp-user-avatar-96 avatar avatar-96 photo” height=”96″ width=”96″
      I am not really sure where does that come from, possibly is there a way to clean css from the avatar and replace with your suggested css?

      Reply
  28. Philip Isaacs says:
    Mar 11, 2013 at 10:59 pm

    Great tutorial. I was wondering if anyone has any examples of how to also utilize this with pagination. I sort of new to wordpress, and I’m still trying to understand how custom templates work.

    Thanks so much.

    Reply
  29. Erika Lewis says:
    Mar 6, 2013 at 11:53 am

    Is there a way to have the userphoto thumbnail pulled instead of the main photo?

    Reply
    • Editorial Staff says:
      Mar 8, 2013 at 8:47 am

      Sure. Use this instead:

      userphoto_the_author_thumbnail()
      Reply
  30. Surjith SM says:
    Mar 5, 2013 at 8:09 am

    Hi, im doing it with your second script with twitter facebook and all. its work fine. But displaying all users. But i need to display only Administrators, Authors & contributors. with hide empty. How can i achieve that ?

    Reply
  31. Karla Porter Archer says:
    Sep 24, 2012 at 6:05 pm

    ok – so I answered my child theme/main theme question on the other post, but I’m encountering another question regarding those pages when trying to do this part:

    “Once you are done adding the function, now you would need to call it in your page-template. Open the contributors.php file or whatever you name the file. Follow the same page template as your page.php and in the loop, just add this function instead of displaying the content”

    There is no page template in the page template file — (I’m using Genesis…)

    I’m not sure what to copy into my “contributors” page…

    Reply
    • Editorial Staff says:
      Sep 25, 2012 at 9:25 am

      First refer back to the other article where suggest that you add the page template in your child theme folder not your parent theme. We are not sure what you called the page template file, but whatever you called it, just paste the div php contributors(); text in that file.

      Page template is what you created using the other tutorial. By adding: /* Template Name: WPBeginnerT1 */ in a php file, you have created a new page template.

      Reply
  32. arionarian says:
    Nov 9, 2011 at 10:08 am

    thanks again for this useful tutorial :), now i have a list of contributor on my wordpress theme :)

    Reply
  33. someonegetsteve says:
    Jul 25, 2011 at 9:01 am

    @KayeBarnes I use the get_user function instead that came in with WP 3.1 which has the role and include(or exclude) parameters to filter only a certain role and users by their IDs…example:

    function contributors() {

    global $wpdb;

    $blogusers = get_users(‘role=author&exclude=7,8,9’);

    foreach ($blogusers as $user) {

    echo “<li>”;

    echo $user->user_email ;

    echo $user->display_name;

    echo “<a href=””.get_bloginfo(‘url’).”/author/”;

    echo $user->user_nicename;

    echo “/”>”;

    echo get_avatar ($user->ID);echo “</a>”;

    echo “</li>”;

    }

    }

    Reply
  34. markwinsf says:
    Jul 19, 2011 at 4:58 pm

    In case anyone can help and needs reference to how to add the custom fields to the code in this tutorial, I’ve been doing it like this…

    $order = get_cimyFieldValue($author->ID, ‘CHAIN_OF_COMMAND’);

    echo cimy_uef_sanitize_content($order);

    Reply
  35. markwinsf says:
    Jul 19, 2011 at 4:47 pm

    This is almost totally awesome, but I’m trying to order the authors (who are architects in a typically hierarchical firm) by a custom field (created with the Cimy User Extra Fields plugin) that has a number in it. So instead of this…

    $authors = $wpdb->get_results(“SELECT ID, user_nicename from $wpdb->users WHERE display_name <> ‘admin’ ORDER BY ID”);

    … I’d like to sort by a pecking order field that runs from 1-10. Any ideas out there in wpbeginner land?

    Reply
  36. KayeBarnes says:
    Jun 20, 2011 at 2:38 pm

    Is there a way to exclude users by either name (such as the originating admin user) and role (subscribers)?

    Reply
  37. FabioFask says:
    Jun 7, 2011 at 3:32 am

    ok I found a very clean solution: http://www.youtube.com/watch?v=R-AQ_HBYZbc&feature=relmfu

    Reply
  38. FabioFask says:
    May 28, 2011 at 1:10 pm

    hello guys, there are still new to impaginations? I am willing to pay if you want ..

    Reply
  39. Fask says:
    Mar 17, 2011 at 2:25 pm

    this is good news ….. I look forward to updating …. thank you

    Reply
  40. Fask says:
    Mar 15, 2011 at 9:35 am

    ok thanks anyway.

    Reply
    • Editorial Staff says:
      Mar 17, 2011 at 9:32 am

      You are welcome. Your suggestion is very good, and our developer liked the suggestion. According to him, we will be releasing a new tutorial soon that will do that :) (No time estimates though)

      Reply
  41. Fask says:
    Mar 15, 2011 at 4:03 am

    ok thanks for answer you have been very kind, you have a solution to the problem of 10 users per page?

    Reply
    • Editorial Staff says:
      Mar 15, 2011 at 7:50 am

      The code above was released on as is basis because it was something we did for our clients. We do not offer customizations as part of the tutorial.

      Reply
  42. Fask says:
    Mar 13, 2011 at 1:41 pm

    but why my comments are never published?

    Reply
    • Editorial Staff says:
      Mar 14, 2011 at 9:41 pm

      You have to give it at least 24 hours or so to get your comments approved.

      Reply
  43. Fask says:
    Mar 13, 2011 at 10:07 am

    hello running on the internet I found this snipped http://xrl.in/7g52 it might be a good solution. this should be called in the custom page like this:

    However, a page number is not set (Users per page) can you help? I’m sure it is useful to all. thanks

    Reply
  44. Fask says:
    Mar 13, 2011 at 9:06 am

    hello, thanks for the tutorial, I wanted to ask if you can enable custom paging in a custom page? virtually all users can write articles on my site and list of contributors is long. So I wanted to insert a function like wp-PageNavi ….. can you help me?

    Reply
  45. Eric says:
    Feb 19, 2011 at 12:12 pm

    Silly question, but what URL does the contributors.php page show?

    Reply
    • Editorial Staff says:
      Feb 22, 2011 at 2:21 pm

      You need to create a page called Contributors and then select the custom page template that you made using this article.

      Reply
  46. Trisha says:
    Feb 11, 2011 at 7:30 pm

    Is there a way to order by last name instead of display name? I have the page working but it lists contributors in order of their first name, since I have the display name (for all) set to their first, then last names. But I’d prefer to sort the list by Last name instead.

    When I change the “orderby” parameter from display_name to last_name, I get nothing – the list is blank. It will only display the list when I order by display_name.

    Any suggestions would be greatly appreciated!

    Reply
  47. puanthanh says:
    Feb 7, 2011 at 4:10 am

    How to randomize it and limit the numbers to 6.

    I want to show it on my homepage as “Suggested people”

    Reply
    • Editorial Staff says:
      Feb 7, 2011 at 6:10 pm

      use wp_list_authors function instead.

      Reply
  48. Caleb J Ross says:
    Jan 2, 2011 at 7:36 pm

    I was not able to find a way to list only users with a specific role (authors and admins, in my case). Can anyone offer any additional help?

    Reply
    • Editorial Staff says:
      Jan 4, 2011 at 1:52 pm

      Specify it in the WPDB query.

      Reply
  49. Caleb J Ross says:
    Oct 3, 2010 at 8:17 pm

    Sorry, another question so soon. I tried to implement the above solutions for allowing the contributor page function to deny displaying certain levels (in my case, I want to keep subscribers from showing up). But I was not able to make this work. Does anyone have any other ideas?

    Reply
    • Editorial Staff says:
      Oct 5, 2010 at 9:25 am

      Yes, it is possible to do so. We were able to write a patch for one client which allowed us to show users only with posts. If you look at the function reference and see how the author.php core file is working, you should be able to figure it out.

      Reply
      • Caleb J Ross says:
        Oct 5, 2010 at 6:56 pm

        Thanks. I’ve done a few hours of searching, but I can’t come up with the correct code. I’ve decided it might be easier to call based on # of posts (where having 0 posts will not display the author on the contributor page).

        Based on the snippet:

        $authors = $wpdb->get_results(“SELECT ID, user_nicename from $wpdb->users WHERE display_name ‘Admin’ ORDER BY display_name”);

        It seems I would want to replace the –display_name ‘Admin’– line with something that calls the post count. However, nothing I see to do works. Any thoughts?

        Reply
        • Editorial Staff says:
          Oct 7, 2010 at 7:05 am

          You would have to look in the post field to check how many does that author has. There is an example of that in author.php core file.

  50. Caleb J Ross says:
    Oct 3, 2010 at 6:43 pm

    This is a fantastic tutorial. This is the first time I’ve messed with the function.php file, and I feel confident to keep going with it.

    Is there a way to have the website, twitter, or facebook (or whatever else we choose to include) information no appear if that field in in the user’s profile page is not populated? Currently, the word “Twitter” will still appear on the webpage even if there is no Twitter url specified. Is there a way to change this?

    Thank you!

    Reply
    • Editorial Staff says:
      Oct 5, 2010 at 9:24 am

      Yes, you can run a if parameter and check to see if the field is populated or not.

      Reply
« 1 2

Leave a Reply Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

Over 1,320,000+ Readers

Get fresh content from WPBeginner

Featured WordPress Plugin
TrustPulse
TrustPulse
Instantly get 15% more conversions with social proof. Learn More »
How to Start a Blog How to Start a Blog
I need help with ...
Starting a
Blog
WordPress
Performance
WordPress
Security
WordPress
SEO
WordPress
Errors
Building an
Online Store
Useful WordPress Guides
    • 7 Best WordPress Backup Plugins Compared (Pros and Cons)
    • How to Fix the Error Establishing a Database Connection in WordPress
    • Why You Need a CDN for your WordPress Blog? [Infographic]
    • 30 Legit Ways to Make Money Online Blogging with WordPress
    • Self Hosted WordPress.org vs. Free WordPress.com [Infograph]
    • Free Recording: WordPress Workshop for Beginners
    • 24 Must Have WordPress Plugins for Business Websites
    • How to Properly Move Your Blog from WordPress.com to WordPress.org
    • 5 Best Contact Form Plugins for WordPress Compared
    • Which is the Best WordPress Popup Plugin? (Comparison)
    • Best WooCommerce Hosting in 2021 (Comparison)
    • How to Fix the Internal Server Error in WordPress
    • How to Install WordPress - Complete WordPress Installation Tutorial
    • Why You Should Start Building an Email List Right Away
    • How to Properly Move WordPress to a New Domain Without Losing SEO
    • How to Choose the Best WordPress Hosting for Your Website
    • How to Choose the Best Blogging Platform (Comparison)
    • WordPress Tutorials - 200+ Step by Step WordPress Tutorials
    • 5 Best WordPress Ecommerce Plugins Compared
    • 5 Best WordPress Membership Plugins (Compared)
    • 7 Best Email Marketing Services for Small Business (2021)
    • How to Choose the Best Domain Registrar (Compared)
    • The Truth About Shared WordPress Web Hosting
    • When Do You Really Need Managed WordPress Hosting?
    • 5 Best Drag and Drop WordPress Page Builders Compared
    • How to Switch from Blogger to WordPress without Losing Google Rankings
    • How to Properly Switch From Wix to WordPress (Step by Step)
    • How to Properly Move from Weebly to WordPress (Step by Step)
    • Do You Really Need a VPS? Best WordPress VPS Hosting Compared
    • How to Properly Move from Squarespace to WordPress
    • How to Register a Domain Name (+ tip to get it for FREE)
    • HostGator Review - An Honest Look at Speed & Uptime (2021)
    • SiteGround Reviews from 4464 Users & Our Experts (2021)
    • Bluehost Review from Real Users + Performance Stats (2021)
    • How Much Does It Really Cost to Build a WordPress Website?
    • How to Create an Email Newsletter the RIGHT WAY (Step by Step)
    • Free Business Name Generator (A.I Powered)
    • How to Create a Free Business Email Address in 5 Minutes (Step by Step)
    • How to Install Google Analytics in WordPress for Beginners
    • How to Move WordPress to a New Host or Server With No Downtime
    • Why is WordPress Free? What are the Costs? What is the Catch?
    • How to Make a Website in 2021 – Step by Step Guide
Deals & Coupons (view all)
Envira Gallery
Envira Gallery Coupon
Get 10% off Envira Gallery, the best responsive WordPress gallery plugin available in the market.
ThirstyAffiliates
ThirstyAffiliates Coupon
Get 15% OFF on ThirstyAffiliates WordPress affiliate link management plugin.
Featured In
About WPBeginner®

WPBeginner is a free WordPress resource site for Beginners. WPBeginner was founded in July 2009 by Syed Balkhi. The main goal of this site is to provide quality tips, tricks, hacks, and other WordPress resources that allows WordPress beginners to improve their site(s).

Join our team: We are Hiring!

Site Links
  • About Us
  • Contact Us
  • FTC Disclosure
  • Privacy Policy
  • Terms of Service
  • Free Blog Setup
  • Free Business Tools
  • Growth Fund
Our Sites
  • OptinMonster
  • MonsterInsights
  • WPForms
  • SeedProd
  • Nameboy
  • RafflePress
  • Smash Balloon
  • AIOSEO

Copyright © 2009 - 2021 WPBeginner LLC. All Rights Reserved. WPBeginner® is a registered trademark.

Managed by Awesome Motive | WordPress hosting by SiteGround | WordPress Security by Sucuri.