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: “%s”", '__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: “%s”", '__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: “%s”', '__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: “%s”', '__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: “%s”', '__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: “%s”", '__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: “%s”", '__x__' ), $category->name ) )
. '"> '
. $category->name
. '</a>'
. $separator;
}
$categories_list = sprintf( '<span> ',
//__( '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: “%s”', '__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
);
}
}