WordPress.org

Ready to get started?Download WordPress

Forums

Author related posts generates page not found error (12 posts)

  1. iselltheta
    Member
    Posted 3 years ago #

    When I view a post at the bottom is a link "all articles from this author" which if clicked pulls up a page not found error using a URL shown as domain.com/author/tony (note tony is the nickname for admin who is the author). After hours of researching, I came across the following scenario that relates to the above problem.

    At the top of every post I write there is a field that lists the author (the nickname is tony but it populates admin). If I click on that it then pulls up every post related to admin (not by the nickname tony) and uses a URL as domain.com/?author=1

    So if I find articles by author name it works but by nickname it does not work (changing nickname to name doesn't fix the problem).

    Thanks for any help.

  2. Bill Erickson
    Member
    Posted 3 years ago #

    Gan you provide a link to your site?

    If ?author=1 works but /author/tony doesn't, it might be because your permalinks aren't set up. Go to Settings > Permalinks and make sure you have one of the pretty options selected (ex: Month and Day).

  3. iselltheta
    Member
    Posted 3 years ago #

    Thanks for the quick response. The site is macrostory.com

    I tried changing the permalinks (was on custom). I tried a few and it still returns the page not found error but this time the page not found is inside my theme versus the original error was from my host.

  4. Bill Erickson
    Member
    Posted 3 years ago #

    The issue is that it's using the display name for generating the link rather than the username. The display name can be set to anything, but the username is fixed and used for the author archive page.

    See if you can find where in the theme that block at the bottom of the posts is being generated. Most likely you'll find it in single.php. Look at what's using to generate that link. I'm guessing it's hard-coded to be ">

    This should be changed to ">

  5. Bill Erickson
    Member
    Posted 3 years ago #

    Oops, it didn't like that I put code in there.

    Change from:
    <a href="/author/<?php the_author();?>">

    To:
    <a href="<?php echo get_author_posts_url;?>">

  6. iselltheta
    Member
    Posted 3 years ago #

    I found where the link is generated (it was in single.php) but the code is a little different so before I change something I wanted to confirm how it should be changed. The problem link is for "all articles from this author." Here is the current code:

    <div class="author-details">" target="_blank">Visit Authors Website  |  /author/<?php echo strtolower(get_the_author_nickname()); ?>">All Articles From This Author</div>
    </div>

    Thank You!

  7. Bill Erickson
    Member
    Posted 3 years ago #

    While the code's a bit broken (use the code button to post code) I was right in my assumption that they were using the display name rather than the username. Replace
    <a href="/author/<?php echo strtolower(get_the_author_nickname());?>">

    With
    <a href="<?php echo get_author_posts_url();?>">

  8. iselltheta
    Member
    Posted 3 years ago #

    I'm going to send the original code again because it's slightly different in terms of what I am changing. Here is how the code currently reads. Thank You

    <div class="author-details"><a href="<?php the_author_url(); ?>" target="_blank">Visit Authors Website</a> &nbsp;|&nbsp; <a href="<?php bloginfo('url'); ?>/author/<?php echo strtolower(get_the_author_nickname()); ?>">All Articles From This Author</a></div>
              </div>
  9. Bill Erickson
    Member
    Posted 3 years ago #

    Use this:

    <div class="author-details"><a href="<?php the_author_url(); ?>" target="_blank">Visit Authors Website</a> &nbsp;|&nbsp; <a href="<?php echo get_author_posts_url(); ?>">All Articles From This Author</a></div>
              </div>
  10. iselltheta
    Member
    Posted 3 years ago #

    I just tried it and I still get the page not found message. The URL populates with a really long address as shown below.

    http://macrostory.com/%3Cbr%20/%3E%3Cb%3EWarning%3C/b%3E:%20%20Missing%20argument%201%20for%20get_author_posts_url(),%20called%20in%20/home/content/67/7476167/html/wp-content/themes/cleanone/cleanone/single.php%20on%20line%2063%20and%20defined%20in%20%3Cb%3E/home/content/67/7476167/html/wp-includes/author-template.php%3C/b%3E%20on%20line%20%3Cb%3E220%3C/b%3E%3Cbr%20/%3Ehttp://macrostory.com/?author=0

  11. Bill Erickson
    Member
    Posted 3 years ago #

    Sorry about that, I thought it would automatically pick up the author ID but it needs you to explicitly state it.

    Here's the updated code

    <div class="author-details"><a href="<?php the_author_url(); ?>" target="_blank">Visit Authors Website</a> &nbsp;|&nbsp; <a href="<?php $id = get_the_author_meta('ID'); echo get_author_posts_url($id); ?>">All Articles From This Author</a></div>
              </div>

    I've tested it this time :)

  12. iselltheta
    Member
    Posted 3 years ago #

    You are the MAN! Thank you very much for all of your help.... I owe you a beer...

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.