WordPress.org

Ready to get started?Download WordPress

Forums

Author profile page - no posts - permalinks...? (5 posts)

  1. bonanza9
    Member
    Posted 5 years ago #

    hi,
    i'm trying to get some author profile pages up, and have copied and edited the wp_list_authors() function to create the links to the corresponding pages.

    in author.php, i have:

    <?php
    if(get_query_var('author_name')) :
    $curauth = get_userdatabylogin(get_query_var('author_name'));
    else :
    $curauth = get_userdata(get_query_var('author'));
    endif;
    ?>

    to create $curauth. this is then used to display some simple stuff like the user name and description.

    this system works fine, when i use the default permalinks settings; however when i use the 'month and name' permalinks setting, it only seems to link to users who have posts.

    i have looked at this thread, but it doesn't really solve the problem (unless i'm missing something!?)

    any help greatly appreciated,

    b9

  2. Eric Mann
    Member
    Posted 5 years ago #

    bonanza9-
    I had a similar need with a site and handled it with the code below:

    <?php
    if(isset($_GET['author_name'])) :
    $curauth = get_userdatabylogin($author_name); // NOTE: 2.0 bug requires get_userdatabylogin(get_the_author_login());
    else :
    $curauth = get_userdata(intval($author));
    endif;
    ?>
    
    <?php if ($curauth->nickname=='author1') { ?>
    <h2>About: <?php echo $curauth->display_name; ?></h2>
    <div class="post-content"><p>Description/biography</p>
    <p>Author 1 can be reached at: <a href="mailto:author1@domain.com">Author1@domain.com</a></p></div>
    <h2>Posts by <?php echo $curauth->display_name; ?>:</h2>
    
    <?php } elseif ($curauth->nickname=='author2') { ?>
    <h2>About: <?php echo $curauth->display_name; ?></h2>
    <div class="post-content"><p>Description/biography</p>
    <p>Author 2<a href="mailto:author2@domain.com">Author2@domain.com</a></p></div>
    <h2>Posts by <?php echo $curauth->display_name; ?>:</h2>
    
    <?php } elseif ($curauth->nickname=='author3') { ?>
    <h2>About: <?php echo $curauth->display_name; ?></h2>
    <div class="post-content"><p>Description/biography</p>
    <p>Author 3 can be reached at: <a href="mailto:author3@domain.com">Author3@domain.com</a></p></div>
    <h2>Posts by <?php echo $curauth->display_name; ?>:</h2>
    
    <?php } ?>

    After this, I have the standard if(have_posts) loop that displays out any posts created by that particular author.

    What's most important is that I use the 'month and name' permalink settings and this code works without any problems at all.

  3. bonanza9
    Member
    Posted 5 years ago #

    hey, thanks.

    in the end, i decided to have all the authors on a single page:

    <?php
    // display user profiles
    function show_user_profiles() {
    	global $wpdb;
    	$users = $wpdb->get_col("SELECT * FROM $wpdb->users WHERE user_login <> 'admin' ORDER BY user_url");
    	foreach($users as $user) {
    	$user = get_userdata($user);
    
    	echo '<li id="' . $user->first_name . '"><h3>' . $user->first_name . ' ' . $user->last_name . '</h3>';
    
    $image_url = get_cimyFieldValue($user->ID, 'PROFILE_PIC');
    if(!empty($image_url)) {
    	echo '<img class="float_left" src="' . $image_url . '" />';
    }
    else {
    	echo '<img class="no_profile_pic float_left" src="http://farm4.static.flickr.com/3295/2955717038_233f4b54bc_o.gif" alt="No profile picture" />';
    }// close get image if
    
    if(!empty($user->description)) {
    	echo '<p>' . $user->description;
    }
    else {
    	echo '<p>This person does not yet have a biography';
    }
    echo '<br /><strong>Email: </strong><a href="mailto:' . antispambot($user->user_email, 1) . '">' . antispambot($user->user_email) . '</a><p/>';
    
    echo '</li>';}// close foreach
    }// close show_user_profiles function
    ?>

    thanks for your answer - i'll check it out

    b9

  4. powtac
    Member
    Posted 5 years ago #

    Hi bonanza9,
    I created a plugin which prevents the 404 at the authors page when no posts where written by this author, perhaps it fits your problem?

    http://wordpress.org/extend/plugins/show-authors-without-posts/

  5. martentiman
    Member
    Posted 5 years ago #

    brilliant! Exactly what I was looking for, thnx powtac!

Topic Closed

This topic has been closed to new replies.

About this Topic