We are posting articles authored by guest authors. The guest authors will not be logging in to the site, and we don't want to create users for these guest authors. We are also not interested in any of the guest blogger plugins for MANY reasons..
To display the guest authors name in the guest posts, I've added a function to my theme's functions.php file so that using a custom field, my guest authors name will appear in place of the name of WordPress user who posted the article.. This function is outlined here: http://www.wpbeginner.com/wp-tutorials/how-to-rewrite-guest-author-name-with-custom-fields-in-wordpress/
Using this, I am able to change the name of the author to display the guest author's name.. However the author link still points to the author page of the WordPress user who posted the article.
So now I'd like to do something similar with the author link. What I would like to do is for the author link to go to a URL that I will enter in a custom field like I enter the guest author's name.
This is the code I'm using, but it's not working. The author link still takes you to the author page for the WordPress user who posted the article.
add_filter( 'the_author_posts_link', 'guest_author_link', 10, 3);
add_filter( 'get_author_posts_url', 'guest_author_link', 10, 3);
add_filter( 'the_author_link', 'guest_author_link', 10, 3);
add_filter( 'get_author_link', 'guest_author_link', 10, 3);
function guest_author_link($link, $author_id, $author_nicename) {
global $post;
$url = get_post_meta( $post->ID, 'guest-url', true );
if( $url ) {
$link = $url;
}
return $link;
}
guest_author_link()
. Have you tested your code to see if it is being executed?