Support » Fixing WordPress » Create a template page and call this template page as per name passed in URL.

  • I want to create a page wherein each team member will have a profile page with his photo and bio and also show his most recent blog postings.
    First option is to create 10 profile pages for 10 team members.
    Second option is create a template page and call this template page as per the team member name passed in url.

    Can you give me any pointers on how to achieve this. Are there any plugins who support this requirement?

    • This topic was modified 1 year, 9 months ago by Jan Dembowski. Reason: Moved to Fixing WordPress, this is not a Developing with WordPress topic
Viewing 7 replies - 1 through 7 (of 7 total)
  • Hi aartikarnik,

    You have two options here. You can look for a plugin that fulfills your needs. There are many: https://nl.wordpress.org/plugins/search/user+profile/

    The second option, is to use plain WordPress users and create profile pages with the author.php template file. As an example the twentyfourteen theme has a author.php you can use as a reference. https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentyfourteen/author.php

    Hope this helps. If you need more info let me know.

    Thanx,

    Stephan

    Moderator bcworkz

    (@bcworkz)

    WP supports this by default for all users as an author profile page. Your theme needs an author.php template to effectively make use of this. You could create child theme and create your own template there, based on your theme’s archive.php or index.php template files. The URL to access such templates is in the form of example.info/author/username/.

    If you don’t like the “author” base element, a different rewrite rule could be added to have the same effect.

    Thread Starter aartikarnik

    (@aartikarnik)

    I am a newbie to this. I am using Uncode theme. I checked and couldn’t locate author.php template. How to create one ? Any more articles which will explain about author.php file and later how to use in the website will be helpful.

    Thanks,

    Moderator bcworkz

    (@bcworkz)

    You can create your own author.php template. It’s best to keep it in a child theme or else it would be lost when the main theme is updated.
    https://developer.wordpress.org/themes/advanced-topics/child-themes/

    Open your theme’s index.php or archive.php in a plain text editor. Save it as author.php in your child theme’s folder. Just by doing that, you’ll get a list of an authors posts when making an author request, but there will not be any bio or photo as-is. You’ll need to add more code to get that. Like Stephan suggested, you could look at the twentyfourteen’s author.php as an example of how to output a user bio. The key line is
    <?php the_author_meta( 'description' ); ?, but you need the part about queuing up the first post for author functions to work.

    There’s no provision for a photo in twentyfourteen. You could look at other theme author templates for examples. I think for user photos, the easiest would be to utilize the gravatar.com system of global avatars for images. Let users set their own avatar photo there and display their choice in the bio with
    <?php echo get_avatar( get_the_author_meta( 'ID' ), 256 ); ?>
    256 is the pixel size of the image you want from gravatar. The image used is tied to the email used to register on your site.

    For more information on any WP function you might encounter, find its doc page at https://developer.wordpress.org/reference/

    Thread Starter aartikarnik

    (@aartikarnik)

    I created author.php file in uncode-child folder as you mentioned above. How to get a list of authors posts when making an author request ? Do I have to mention all team members as authors in the Users->Role section of WordPress?

    This is my website: https://www.copeace.com/blog

    I want to be able to click on authors of each blog and there should be a different author’s page displaying their photo, bio and blogs they have written.

    Moderator bcworkz

    (@bcworkz)

    I can’t give you a working example since I don’t know the actual user “nicenames” that WP uses internally. The names listed on your site are labels that are impractical to use in request slugs. A typical author permalink: example.info/author/user_nicename/

    The assigned role doesn’t matter, however the author link only works for users that have actually authored posts or else WP puts up a 404 template instead of the author template. There’s still hope for non-author users getting a bio page this way. You can force WP to load the author template whether there are posts or not through the “template_include” filter.

    Hey,

    If you want the author names to link to their profile page (author.php) you need to change the post template (probably single.php).

    – Copy the single.php template to your child theme like bcworkz explained.
    – Find the place where the author name is printed. Should be something like <?php the_author(); ?>
    – Change that output to something like: <a href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>">By <?php the_author(); ?></a>

    That should change the static names you have now to a clickable link to the authors profile.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Create a template page and call this template page as per name passed in URL.’ is closed to new replies.