Adding clickable author

Hi, Im trying to achieve clickable authors. So you click on the authors name and any article written by them pops up.

I found this code pasted below from someone else here and it works in that it makes the name clickable but the page it brings me to is a 404 error page. I am using Ethos.

if ( ! function_exists( ‘x_ethos_entry_meta’ ) ) :
function x_ethos_entry_meta() {

$author = ' by <a href="'.  get_bloginfo('url').'/author/'.get_the_author_link().'">'.get_the_author().'</a></span>';

$date = sprintf( '<span><time class="entry-date" datetime="%1$s">%2$s</time></span>',
  esc_attr( get_the_date( 'c' ) ),
  esc_html( get_the_date() )
);

if ( get_post_type() == 'x-portfolio' ) {
  if ( has_term( '', 'portfolio-category', NULL ) ) {
    $categories        = get_the_terms( get_the_ID(), 'portfolio-category' );
    $separator         = ', ';
    $categories_output = '';
    foreach ( $categories as $category ) {
      $categories_output .= '<a href="'
                          . get_term_link( $category->slug, 'portfolio-category' )
                          . '" title="'
                          . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                          . '"> '
                          . $category->name
                          . '</a>'
                          . $separator;
    }

    $categories_list = sprintf( '<span>In %s',
      trim( $categories_output, $separator )
    );
  } else {
    $categories_list = '';
  }
} else {
  $categories        = get_the_category();
  $separator         = ', ';
  $categories_output = '';
  foreach ( $categories as $category ) {
    $categories_output .= '<a href="'
                        . get_category_link( $category->term_id )
                        . '" title="'
                        . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                        . '"> '
                        . $category->name
                        . '</a>'
                        . $separator;
  }

  $categories_list = sprintf( '<span>In %s',
    trim( $categories_output, $separator )
  );
}

if ( comments_open() ) {
  $title  = get_the_title();
  $link   = get_comments_link();
  $number = get_comments_number();
  if ( $number == 0 ) {
    $comments = sprintf( '<span><a href="%1$s" title="%2$s" class="meta-comments">%3$s</a></span>',
      esc_url( $link ),
      esc_attr( sprintf( __( 'Leave a comment on: &ldquo;%s&rdquo;', '__x__' ), $title ) ),
      __( 'Leave a Comment' , '__x__' )
    );
  } else if ( $number == 1 ) {
    $comments = sprintf( '<span><a href="%1$s" title="%2$s" class="meta-comments">%3$s</a></span>',
      esc_url( $link ),
      esc_attr( sprintf( __( 'Leave a comment on: &ldquo;%s&rdquo;', '__x__' ), $title ) ),
      $number . ' ' . __( 'Comment' , '__x__' )
    );
  } else {
    $comments = sprintf( '<span><a href="%1$s" title="%2$s" class="meta-comments">%3$s</a></span>',
      esc_url( $link ),
      esc_attr( sprintf( __( 'Leave a comment on: &ldquo;%s&rdquo;', '__x__' ), $title ) ),
      $number . ' ' . __( 'Comments' , '__x__' )
    );
  }
} else {
  $comments = '';
}

$post_type           = get_post_type();
$post_type_post      = $post_type == 'post';
$post_type_portfolio = $post_type == 'x-portfolio';
$no_post_meta        = x_get_option( 'x_blog_enable_post_meta' ) == 0;
$no_portfolio_meta   = x_get_option( 'x_portfolio_enable_post_meta' ) == 0;

if ( $post_type_post && $no_post_meta || $post_type_portfolio && $no_portfolio_meta ) {
  return;
} else {
  printf( '<p class="p-meta">%1$s%2$s%3$s%4$s</p>',
    $categories_list,
    $author,
    $date,
    $comments
  );
}

}
endif;

So first problem is I cant get it to work and also, I have another bit of code in my functions.php that will not allow it to work at all, which I’m attaching below… So I removed it to test out the first bit of code. TIA,Rena

// =============================================================================
if ( ! function_exists( ‘x_excerpt_length’ ) ) :
function x_excerpt_length( $length ) {

return x_get_option( 'x_blog_excerpt_length', '10' );

}
add_filter( ‘excerpt_length’, ‘x_excerpt_length’ );
endif;

function x_ethos_entry_meta() {

//
// Author.
//

$author = sprintf( ' %1$s %2$s</span>',
  __( 'by', '__x__' ),
  get_the_author()
);


//
// Date.
//

$date = sprintf( '<span><time class="entry-date" datetime="%1$s">%2$s</time></span>',
  esc_attr( get_the_date( 'c' ) ),
  esc_html( get_the_date() )
);


//
// Categories.
//

if ( get_post_type() == 'x-portfolio' ) {
  if ( has_term( '', 'portfolio-category', NULL ) ) {
    $categories        = get_the_terms( get_the_ID(), 'portfolio-category' );
    $separator         = ', ';
    $categories_output = '';
    foreach ( $categories as $category ) {
      $categories_output .= '<a href="'
                          . get_term_link( $category->slug, 'portfolio-category' )
                          . '" title="'
                          . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                          . '"> '
                          . $category->name
                          . '</a>'
                          . $separator;
    }

    $categories_list = sprintf( '<span>%1$s %2$s',
      __( 'In', '__x__' ),
      trim( $categories_output, $separator )
    );
  } else {
    $categories_list = '';
  }
} else {
  $categories        = get_the_category();
  $separator         = ', ';
  $categories_output = '';
  foreach ( $categories as $category ) {
    $categories_output .= '<a href="'
                        . get_category_link( $category->term_id )
                        . '" title="'
                        . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                        . '"> '
                        . $category->name
                        . '</a>'
                        . $separator;
  }

  $categories_list = sprintf( '<span>&nbsp; ',
    //__( 'In', '__x__' ),
    trim( $categories_output, $separator )
  );
}


//
// Comments link.
//

if ( comments_open() ) {

  $title  = apply_filters( 'x_entry_meta_comments_title', get_the_title() );
  $link   = apply_filters( 'x_entry_meta_comments_link', get_comments_link() );
  $number = apply_filters( 'x_entry_meta_comments_number', get_comments_number() );

  $text = ( 0 == $number ) ? __( 'Leave a Comment', '__x__' ) : sprintf( _n( '%s Comment', '%s Comments', $number, '__x__' ), $number );

  $comments = sprintf( '<span><a href="%1$s" title="%2$s" class="meta-comments">%3$s</a></span>',
    esc_url( $link ),
    esc_attr( sprintf( __( 'Leave a comment on: &ldquo;%s&rdquo;', '__x__' ), $title ) ),
    $text
  );

} else {

  $comments = '';

}


//
// Output.
//

if ( x_does_not_need_entry_meta() ) {
  return;
} else {
  printf( '<p class="p-meta">%1$s%2$s%3$s%4$s</p>',
    $categories_list,
    $author,
    $date,
    $comments
  );
}

}

Hi Rena,

Thank you for reaching out to us. The code you’re using might be outdated now that’s why it isn’t working, try following this thread instead https://theme.co/apex/forum/t/ethos-blog-post-author-set-up/49952/2

Let us know how this goes!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.